文本框中的日期格式

时间:2012-10-11 02:36:22

标签: vb.net numbers date-format

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

输出应该是(日期是10/22/2012) 文本应该仍然存在 谢谢

1 个答案:

答案 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
相关问题