如何使用特定格式将字符串解析为DateTime?

3

我有一个数据源,其中日期以字符串形式出现:

   Sat Sep 22 13:15:03 2018

有没有一种简单的方法可以在C#中将其解析为DateTime?我尝试使用DateTime.(Try)Parse,但它似乎无法识别这个特定的格式...

4个回答

6
你应该优先使用 DateTime.ParseExactTryParseExact 方法,这些方法允许你在程序中指定预期的格式。而 DateTime.ParseTryParse 方法则比较危险,因为它们接受运行代码的机器上配置的当前日期/时间格式(用户可以从默认设置更改),以及一些文化中立的格式。换句话说,用户可以更改控制面板中的设置并破坏 Parse/TryParse

5

尝试使用DateTime.ParseExact函数。

该代码将使用指定格式创建一个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);

这里缺少了缩写月份后面的日期数字。请参考我的答案。 - Gonzalo

5

这个有效:

DateTime dt = DateTime.ParseExact ("Sat Sep 22 13:15:03 2018", "ddd MMM d HH:mm:ss yyyy", null)

4
var str = "Sat Sep 22 13:15:03 2018";
var date = DateTime.ParseExact(str, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接