以下行给出了“无法通过有效的DateTime识别字符串”错误: DateTime.ParseExact("4/6/2016", "dd/MM/yyyy", Nothing) 我在stackoverflow上得到了这个“工作”的例子,但它对我不起作用:Parse Exact Sample我无
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