0

有人可以帮我格式化吗。在我的文本框中(日期是 10222012)

输出应该是(日期是 10/22/2012)文本应该还在,谢谢

4

1 回答 1

0

我的头顶上有几种方法。

如果文本来自一个变量,例如:

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
于 2012-10-11T02:53:08.603 回答