当前位置 : 主页 > 网络编程 > ASP >

asp.net – 为什么这个DateTime.ParseExact语句不起作用?

来源:互联网 收集:自由互联 发布时间:2021-06-24
以下行给出了“无法通过有效的DateTime识别字符串”错误: DateTime.ParseExact("4/6/2016", "dd/MM/yyyy", Nothing) 我在stackoverflow上得到了这个“工作”的例子,但它对我不起作用:Parse Exact Sample我无
以下行给出了“无法通过有效的DateTime识别字符串”错误:

DateTime.ParseExact("4/6/2016", "dd/MM/yyyy", Nothing)

我在stackoverflow上得到了这个“工作”的例子,但它对我不起作用:Parse Exact Sample我无法找出原因.

编辑(reedit,我错误地输入了最后两次尝试错误):
仍然没有好处.这是我在尝试到目前为止提交的所有建议后发现的(感谢所有).更多信息,日期字符串来自文本框控件.

Dim xxx As String = "4/6/2016"  'OR  = "04/06/2016" as necessary for the sample

这不起作用:

DateTime.ParseExact(xxx, "M/d/yyyy", CultureInfo.InvariantCulture)

这不起作用:

DateTime.ParseExact(xxx, "MM/dd/yyyy", CultureInfo.InvariantCulture)

之后,我尝试使用DateTime.Parse更简单:

DateTime.ParseExact(xxx)

我手动输入了这个.我没有使用文本框控件中的值,而且DID工作:

DateTime.Parse("4/6/‎2016‎")

太令人沮丧了

您的格式表示您每天和每月都有两位数字.您的实际值只有一位数.

您有两种选择:

>按照您指定的格式,例如2016年4月6日
>更改格式以匹配值,例如d / M / YYYY

另外 – 并且单独 – 您将传递Nothing作为格式提供者,这意味着将使用当前文化.您的格式使用/是特定于区域性的日期分隔符.如果您当前的文化不使用/作为其日期分隔符,那就是另一个问题.如果您有固定格式,则可能需要将CultureInfo.InvariantCulture指定为格式说明符.

这是一个简短但完整的程序,展示了它的工作原理:

Option Strict On

Imports System
Imports System.Globalization

Public Class Test

    Shared Sub Main()
        Dim xxx As String = "4/6/2016"
        Dim result as DateTime = DateTime.ParseExact(xxx, "M/d/yyyy", CultureInfo.InvariantCulture)
        Console.WriteLine(result)
    End Sub

End Class
网友评论