DateTime.ParseExact无法将字符串识别为有效

时间:2012-05-08 02:01:24

标签: .net parsing datetime

我知道这个已经有很多相似之处。但是,每次我在不同日期转换日期时,它都会让我感到困惑。始终显示消息String was not recognized as a valid DateTime.

我尝试了一些代码:

Dim EffectiveDate As DateTime

EffectiveDate  = DateTime.ParseExact("05/08/2012", "MM/dd/yyyy", Nothing)
EffectiveDate  = DateTime.ParseExact("5/8/2012", "MM/dd/yyyy", Nothing)
EffectiveDate  = DateTime.ParseExact("1/10/2012", "MM/dd/yyyy", Nothing)
EffectiveDate  = DateTime.ParseExact("10/1/2012", "MM/dd/yyyy", Nothing)
//It resulted in got the message above

EffectiveDate  = DateTime.ParseExact("10/10/2012", "MM/dd/yyyy", Nothing)
//It has no problem

代码有什么问题?非常感谢你。

4 个答案:

答案 0 :(得分:2)

在大多数情况下,

DateTime.Parse()应该可以正常工作,除非您希望用户使用特定格式。

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

答案 1 :(得分:1)

日期参数必须采用指定的确切格式。您的格式为MM / dd / yyyy,但您提供的日期为10/1/2012。该日期当天有1位数字,您指定当天的2位数字。请参阅文档here

答案 2 :(得分:0)

检查web.config的全球化标签 它应该是这样的

> <globalization requestEncoding="windows-1252"
> responseEncoding="windows-1252" culture="en-GB"/>

默认情况下是美国文化......

答案 3 :(得分:0)

如果您不知道是否有一个或两个数字,请在格式字符串中使用单个字母。在你的情况下

"M/d/yyyy"

当您使用Nothing作为格式提供者时,格式字符串中/的解释取决于当前文化的日期分隔符。