【发布时间】:2013-04-19 11:06:40
【问题描述】:
我有以下格式的时间戳字符串5/1/2012 3:38:27 PM。如何在 c# 中将其转换为 DateTime 对象
【问题讨论】:
-
如果您发布您尝试过的内容会很有帮助。
标签: c# datetime windows-phone-8
我有以下格式的时间戳字符串5/1/2012 3:38:27 PM。如何在 c# 中将其转换为 DateTime 对象
【问题讨论】:
标签: c# datetime windows-phone-8
var date = DateTime.ParseExact("5/1/2012 3:38:27 PM",
"M/d/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture);
【讨论】:
您输入的字符串看起来像en-us 格式,即M/d/yyyy h/mm/ss tt。解析时必须使用正确的 CultureInfo 实例:
var ci = System.Globalization.CultureInfo.GetCultureInfo("en-us");
var value = DateTime.Parse("5/1/2012 3:38:27 PM", ci);
或
var ci = new System.Globalization.CultureInfo("en-us");
【讨论】:
System.Globalization.CultureInfo?
DateTime.Parse 似乎期望 System.IFormatProvider 所以 ci 被标记为无效参数
CultureInfo 实现 IFormatPrivider ;)
尝试使用DateTime.ParseExact这样的方法;
string s = "5/1/2012 3:38:27 PM";
DateTime date = DateTime.ParseExact(s, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
Console.WriteLine(date);
将日期和时间的指定字符串表示形式转换为其 使用指定格式和特定区域性的 DateTime 等效项 格式信息。 字符串表示的格式必须匹配 完全符合指定格式。
输出将是;
01.05.2012 15:38:27
注意,此输出可能会根据您使用的文化而改变。由于我的Culture 是tr-TR,所以日期运算符是. 我们的文化。
这是DEMO。
【讨论】:
【讨论】:
http://www.codeproject.com/Articles/14743/Easy-String-to-DateTime-DateTime-to-String-and-For
这可能对你有帮助。在那里您可以找到 ParseExact 参数的详细说明。
【讨论】: