我的应用程序有一个DateTime选择器控件,以下列格式发送选定日期:“Wed Mar 01 2017”,在服务器端我在做Convert.ToDateTime(“Wed Mar 01 2017” )。 随着一切日期,直到今天这项工作很好,但与“2017年3月1日星期三”抛出无效格式异常。 这是为什么?Wed 2017年3月3日星期三无效的日期时间字符串格式
0
A
回答
1
您需要使用ParseExact
或TryParseExact
,并指定喜欢的格式:
DateTime dt;
if(DateTime.TryParseExact("Wed Mar 01 2017","ddd MMM dd yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
//invalid date
}
它之所以失败你的机器上是由于不支持格式的文化,否则你的代码应工作为en-US
文化。
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime dt = Convert.ToDateTime("Wed Mar 01 2017");
只要确保您的机器上的文化没有改变。
为了安全起见,使用InvariantCulture
格式解析日期总是一个更好的主意,这样您就可以支持跨多种文化的应用程序。
0
DateTime.ParseExcact("Wed Mar 01 2017","ddd MMM dd yyyy",CultureInfo.InvariantCulture);
0
试试这个代码
var date = "Wed Mar 01 2017";
Console.WriteLine(DateTime.ParseExact(date, "ddd MMM dd yyyy", CultureInfo.InvariantCulture));
相关问题
- 1. 更改日期格式8月3日/ 2017年2017年3月8日
- 2. 解析字符串为日期时间格式“日,月dat,年”
- 3. 日期的Java日期格式字符串“2013年1月2日星期三下午5:29:26 +02:00”
- 4. SAHI公司临 - 无法从“星期四2017年3月2日”更改日期格式为“MM/DD/YYYY”
- 5. 格式日期喜欢:3月1日,星期一
- 6. 日期,月日,年的日期格式
- 7. 解析这种字符串到日期时间 - “星期五2013年3月22日”(C#)
- 8. 回声每月第三个星期四开始2016年3月3日
- 9. 如何将日月日期时间转换为oracle日期?格式为Wed May 03 00:00:00 IST 2017
- 10. 日期格式:无效月
- 11. strtotime(“2017年9月5日星期五”)返回“2017年10月2日”?
- 12. 日期格式日期月 - 年
- 13. 以下格式的比较日期:2012年8月20日星期三10:14
- 14. 将2017-03-01转换为2017年3月1日格式inPHP
- 15. C#将日期时间转换为2014年7月26日星期四格式
- 16. 安卓字符串日期时间格式与月和日
- 17. 2017年3月1日DateTime.Parse问题
- 18. java.time.DateTimeException:无效日期'2月29日'为'2017'不是闰年Java
- 19. 字符串无效日期时间
- 20. 格式日期3位数的年份
- 21. 日期时间格式的字符串
- 22. 替换字符串(3-11-2012)与其他日期格式(2012年11月3日)
- 23. 从字符串到日期格式的日期更改格式3
- 24. 如何转换日期(星期一,2017年1月2日15:46:23 GMT)日期格式化数据在mysql
- 25. 修改月份的日期时间短名称格式化日期字符串
- 26. JavaScript的日期格式为日/月/年
- 27. 日期和时间2017年5月19日星期五,并与当前日期比较
- 28. 将字符串转换为日期时间格式无效System.Datetime
- 29. C#日期时间解析“无效格式字符串”
- 30. 日期时间格式转换无效字符串
检查:http://stackoverflow.com/questions/18961520/why-datetime-parseexactstring-string-iformatprovider-need-the -iformatprovide –
请标记正确的答案,并upvote有用的答案! – Sameer