我有一个来源,其中日期以这种字符串形式出现:
Sat Sep 22 13:15:03 2018
我可以通过简单的方法将其解析为C#中的DateTime吗?我已尝试使用DateTime。(尝试)Parse,但它似乎没有认识到这种特定的格式...
答案 0 :(得分:6)
您应该更喜欢DateTime.ParseExact
和TryParseExact
;这些方法允许您在程序中指定预期的格式。
DateTime.Parse
和TryParse
方法很危险,因为它们接受在运行代码的计算机上配置的当前日期/时间格式 - 用户可以从默认值更改 - 以及一些文化中立的格式。换句话说,用户可以更改“控制面板”中的设置并中断Parse
/ TryParse
。
答案 1 :(得分:5)
此代码采用您的日期字符串并应用格式来创建DateTime对象。
CultureInfo provider = CultureInfo.InvariantCulture;
string dateString = "Sat Sep 22 13:12:03 2018";
string format = "ddd MMM dd HH':'mm':'ss yyyy";
DateTime result = DateTime.ParseExact(dateString, format, provider);
答案 2 :(得分:5)
这有效:
DateTime dt = DateTime.ParseExact ("Sat Sep 22 13:15:03 2018", "ddd MMM d HH:mm:ss yyyy", null)
答案 3 :(得分:4)
var str = "Sat Sep 22 13:15:03 2018";
var date = DateTime.ParseExact(str, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture);