有人可以帮我格式化吗。在我的文本框中(日期是 10222012)
输出应该是(日期是 10/22/2012)文本应该还在,谢谢
我的头顶上有几种方法。
如果文本来自一个变量,例如:
Dim MyText As String = "The date is 10222012"
然后你可以使用 String 函数来获取日期(假设它总是 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)方法将其转换为您想要的格式,其中括号中的格式字符串告诉您使用什么格式。
已编辑
这就是我没有先尝试代码的结果......如果字符串“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
(另一个字符串运算符)获得相同的结果,但这可能同样难看。
如果您需要大量进行此转换,我建议将其放入辅助方法中,或者更好的是扩展方法。
第二次编辑
您可以很容易地检查空白记录:
Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
If Not String.IsNullOrEmpty(MyText) Then
' convert the format here
End If