vb.NET(对于ASPX页面):将字符串解析为日期

时间:2013-08-21 01:14:17

标签: vb.net datetime

我正在尝试使这条线工作:

MyDateTime = DateTime.ParseExact("2/8/2013 11:59:00 AM", "yyyy-mm-dd hh:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)

我以上述格式从电子表格中获取date/time个字符串,我无法控制它。网上有很多帮助,包括这个网站,关于将字符串转换为日期,我已经尝试了所有这些,但我一直收到这个错误:

"System.FormatException: String was not recognized as a valid DateTime."

我只是准备编写自己的自定义解析器,但这似乎并不优雅。是否有一些内置的方法将像我这样的字符串转换为我需要的date/time格式? / p>

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的格式字符串错误。您输入d/M/yyyy hh:mm:ss tt格式的日期,但告诉它预期yyyy-mm-dd hh:mm:ss格式的日期。这两者并不完全匹配,所以DateTime.ParseExact非常正确地向你抛出异常。

尝试:

MyDateTime = DateTime.ParseExact("2/8/2013 11:59:00 AM", "d/M/yyyy hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)

这告诉它期待以下字符:

Integer from 1 through 31 (depending on the length of the month)
/ character
Integer from 1 through 12
/ character
4 digit year
Space
Integer from 1 through 12
: character
Integer from 00 through 59
: character
Integer from 00 through 59
Space
Two character meridian specifier ("AM" or "PM")

有关日期时间格式字符串的更多信息,请查看this MSDN page

答案 1 :(得分:0)

我认为您需要更改字符串格式以匹配您传入的内容。您似乎传递了更多类似的内容:

"d/M/yyyy hh:mm:ss"

尝试一下,看看它是如何工作的。请注意,您需要使用MM几个月 - 'mm'用于分钟。