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

Dan*_*son 3 .net c# datetime parsing

我有一个来源,其中日期以这种字符串形式出现:

   Sat Sep 22 13:15:03 2018
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以解析为C#中的DateTime?我尝试过DateTime.(尝试)Parse,但它似乎没有认识到这种特定的格式...

Tim*_*son 6

你应该更喜欢DateTime.ParseExactTryParseExact; 这些方法允许您指定程序中的预期格式.

这些DateTime.ParseTryParse方法很危险,因为它们接受在运行代码的机器上配置的当前日期/时间格式 - 用户可以从默认值更改 - 以及一些与文化无关的格式.换句话说,用户可以更改控制面板中的设置并中断Parse/ TryParse.


Rob*_*ner 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);
Run Code Online (Sandbox Code Playgroud)


Gon*_*alo 5

这有效:

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