如何从“03-06-2012 08:00 am”字符串填充C#DateTime对象。
我正在尝试一些以下类型的代码:
DateTime lectureTime = DateTime.Parse("03-06-2012 08:00 am");
我使用基于jQuery的这个http://trentrichardson.com/examples/timepicker/插件来生成日期时间。
更新 -
下面有很多答案和很多东西来清除这个小问题的基础知识 从下面的快照中,您可以看到我在Visual Studio中调试期间尝试的内容和收到的内容
答案 0 :(得分:3)
string lectureTime = "03-06-2012 08:00 am";
DateTime time = DateTime.ParseExact(lectureTime , "dd-MM-yyyy hh:mm tt", CultureInfo.InvariantCulture);
答案 1 :(得分:2)
如果您拥有正确的文化,您的代码无需修改即可运行。但是您可能正在使用生成字符串的程序中的不同日期格式。
我建议在以下情况下始终指定CultureInfo
:
DateTime
。DateTime
(不仅仅显示给您的用户)。试试这个:
CultureInfo cultureInfo = new CultureInfo("en-GB"); // Or something else?
DateTime lectureTime = DateTime.Parse("03-06-2012 08:00 am", cultureInfo);
查看在线工作:ideone
DateTime.Parse
和DateTime.ParseExact
如果您希望.NET尽力解析字符串,请使用DateTime.Parse
。它可以处理各种常见格式。
如果您事先知道日期应该如何格式化,并且您想要拒绝任何与此格式不同的内容(即使它可以正确解析且没有歧义),请使用DateTime.ParseExact
。
答案 2 :(得分:1)
您需要使用DateTime.ParseExact。像
这样的东西DateTime lectureTime = DateTime.ParseExact("03-06-2012 08:00 am", "dd-MM-yyyy hh:mm tt", CultureInfo.InvariantCulture);