我正在尝试使这条线工作:
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>
感谢您的帮助。
答案 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'用于分钟。