如何使用Date.TryParseExact将字符串解析为日期

时间:2014-04-03 10:58:31

标签: .net vb.net parsing date

读数
Dim lendingtimedate As String = If(irequest.Form.Contains("startingtimedate"), irequest.Form("endingtimedate").Value, "")

获得价值:lendingtimedate = "04/23/2014 12:45 PM"

现在我将在

中解析它
Dim edateValue As Date

作为

Dim enddate = Date.TryParseExact(lendingtimedate, "MM/dd/yyyy h:mm:ss tt", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, edateValue)

但是enddate总是:edateValue = #12:00:00 AM#

请帮我找出我无法获得的原因

edateValue = "04/23/2014 12:45 PM"

2 个答案:

答案 0 :(得分:3)

TryParseExact返回Boolean,表示解析是否成功,因此您需要测试结果。

在您的情况下,它返回False,因为您的格式字符串与您尝试解析的字符串的格式不匹配(您需要额外的:ss)。

以下代码正确解析:

Dim lendingtimedate = "04/23/2014 12:45 PM"
Dim edateValue As Date

If Date.TryParseExact(lendingtimedate, "MM/dd/yyyy h:mm tt", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, edateValue) Then
    Debug.WriteLine(edateValue)
Else
    Debug.WriteLine("Failed to parse")
End If

答案 1 :(得分:1)

因为"04/23/2014 12:45 PM"中没有秒,所以这不起作用:

"MM/dd/yyyy h:mm:ss tt"

但是这个:

"MM/dd/yyyy h:mm tt"