CDATE在VB.NET中如何将字符串转换为日期?

9

我想问一下VB.NET如何将日期从字符串转换。我目前正在设计一个数据库视图,并将日期转换为MMddyyyy格式,但我担心CDATE会将其读取为ddMMyyyy

我希望能够缩短代码并使用CDATE来转换日期,而不是使用传统的M/d/yyyy h:mm:ss tt格式。


示例:

Dim myDate As Date = CDate(DataTable.Rows(0).Item("DateValue").ToString())
1个回答

10

CDate取决于控制面板的区域设置,不建议使用 - 您应该使用Date.ParseExact

Const MyDateFormat As String = "MMddyyyy"

Dim dte As Date = #2/1/2003#
'convert the date to a string
Dim strDate As String = dte.ToString(MyDateFormat)
'convert the string back to a date
Dim dte2 As Date = Date.ParseExact(strDate, MyDateFormat, System.Globalization.CultureInfo.InvariantCulture)

If dte = dte2 Then
  MsgBox("They're the same :-) " & strDate)
Else
  MsgBox("They're different :-(")
End If

对于你的代码,它会像这样:

Dim myDate As Date = Date.ParseExact(DataTable.Rows(0).Item("DateValue").ToString(), "MMddyyyy", System.Globalization.CultureInfo.InvariantCulture)

1
实际上,CDate 取决于线程区域设置,控制面板设置是系统范围内的。 - Brain2000
有趣!我不知道那个。不过,你可以将线程区域设置传递给ParseExact,所以我认为最好还是使用ParseExact(或TryParseExact)。据我所知,CDate是为了与VB6向后兼容。 - SSS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接