即使日期不符合.net库支持的内容,我如何将字符串中的日期转换为DateTime类型。将字符串转换为日期
"dec 2 2009"
"dec 2, 2009"
"dec 2009"
"december 2009"
"dec. 2009"
"dec. 2, 2009"
and so on
是否有这样的库?
假设美国日期格式
即使日期不符合.net库支持的内容,我如何将字符串中的日期转换为DateTime类型。将字符串转换为日期
"dec 2 2009"
"dec 2, 2009"
"dec 2009"
"december 2009"
"dec. 2009"
"dec. 2, 2009"
and so on
是否有这样的库?
假设美国日期格式
尝试:
MyDateTime = DateTime.ParseExact(MyString, "yyyy-MM-dd HH:mm tt", null);
......或任何合适的日期格式...
问题是我不知道用户会输入什么。 – newmem 2009-11-03 07:10:00
然后使用正则表达式来确定提供日期的格式,并将该格式提供给ParseExact。 – 2009-11-03 15:47:30
“的日期即使不符合.net库支持的内容。“
“有没有这样的图书馆?”
所以你想要一个图书馆,当图书馆不支持它?
很明显,人们可能以前编写过其他日期/时间字符串解析器,但是他们中的任何一个都不会穷尽所有您可能需要的东西 - 只需找到适合您期望格式的东西即可。
检查出DateTime.ParseExact在http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx加上自定义格式http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx。
下面是一个例子:
...
DateTime.TryParseExact(s, "%M %d yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out resultDateTime)
...
如果我明白你的问题
你可以用
如尝试:DateTime.ParseExact(sDate, "mm/dd/yyyy", CultureInfo.InvariantCulture);
允许日期的自由格式规范有问题的。 2009/10/9没有明确的解析,即当日为12或更少时,您将无法区分月份和日期。 – 2009-11-03 05:00:31