【发布时间】:2017-02-24 01:23:41
【问题描述】:
我正在尝试解析 vb.net 中的日期,如下所示。
Dim EndDate As Date = Date.Now.ToString("yyyy-MM-dd")
If Date.TryParseExact(txtEndDate.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, EndDate) Then
EndDate = txtEndDate.Text
Else
txtEndDate.Text = EndDate
End If
我不明白为什么我上面的代码输出00:00:00
期望的结果
如果日期输入无效ISO日期"yyyy-MM-dd"则
将txtEndDate.Text 和EndDate 设置为今天的日期为**ISO。
示例
如果我传入2016-15-10
EndDate 被设置为 #10/15/2016 12:00:00 AM#
如果我传入asfd
EndDate 设置为 #1/1/0001 12:00:00 AM#
【问题讨论】:
-
最后一个参数应该是存储结果的日期,你传递的是一个字符串。
Function TryParseExact(s As String, format As String, provider As System.IFormatProvider, style As System.Globalization.DateTimeStyles, ByRef result As Date) As Boolean -
即使我将变量设置为日期,输出也是 1/1/0001 12:00:00 AM
-
你解析的值是多少?
-
见上例
-
您正在验证(解析)一个字符串。一般来说,如果它失败了,你需要新的输入(不知道这些来自哪里,用户?)。请注意,像
2016-10-5这样的完美日期也会因该格式字符串而失败,因为日期不是dd或'05'。 "yyyy-M-d" 将解析 1 或 2 位数字形式
标签: asp.net vb.net date parsing datetime