有人可以帮我格式化吗。 在我的文本框中(日期是10222012)
输出应该是(日期是10/22/2012) 文本应该仍然存在 谢谢
答案 0 :(得分:0)
我的头脑中有几种方法。
如果文本来自一个变量,例如:
Dim MyText As String = "The date is 10222012"
然后你可以使用字符串函数来获取日期(假设它总是8个字符,这可能是一个危险的假设),格式化它并将其粘贴在:
Dim MyDate As String = CType(MyText.Substring(MyText.Length - 8), DateTime).ToString("MM/dd/yyyy")
MyText = MyText.Substring(0, MyText.Length - 8) & MyDate
另一方面,如果日期是一个单独的变量,比如一个DateTime变量,你可以这样做:
Dim MyDateFormatted As String = MyDate.ToString("MM/dd/yyyy")
还有其他方法可以做到这一点。这里的关键是获取日期并通过DateTime.ToString Method (String)方法将其转换为您想要的格式,其中parantheses中的格式字符串说明要使用的格式。
<强> EDITED 强>
这就是我没有先尝试代码的原因......如果字符串“10222012”无法识别为有效格式,还有另一种方法可以做到这一点:
Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
Dim MyDate As String = MyText.Substring(MyText.Length - 8)
MyDate = MyDate.SubString(0, 2) & "/" & MyDate.Substring(2, 2) & "/" & _
MyDate.Substring(4)
oSheet.Cells(x, iCount - 2) = MyText.Substring(0, _
dRecord.Rows(i).Item(iCount).Length - 8) & _
MyDate
这有点暴力和丑陋,但这应该让你朝着正确的方向前进。您可能能够使用Insert
(另一个String运算符)获得相同的结果,但这可能同样难看。
如果您需要进行大量转换,我建议将其放入辅助方法,或者更好的扩展方法。
第二次修改
您可以轻松检查空白记录:
Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
If Not String.IsNullOrEmpty(MyText) Then
' convert the format here
End If