Как мне разобрать строку в DateTime, с определенным форматом? - PullRequest
3 голосов
/ 07 декабря 2009

У меня есть источник, где даты представлены в виде строки:

   Sat Sep 22 13:15:03 2018

Есть ли простой способ, которым я могу разобрать это в DateTime в C #? Я пытался с DateTime. (Попробуйте) Parse, но он не распознает этот конкретный формат ...

Ответы [ 4 ]

6 голосов
/ 07 декабря 2009

Вы должны предпочесть DateTime.ParseExact и TryParseExact; Эти методы позволяют вам указать ожидаемый формат (ы) в вашей программе.

Методы DateTime.Parse и TryParse опасны, потому что они принимают текущий формат даты / времени, настроенный на компьютере, на котором выполняется код - который пользователь может изменить по умолчанию - вместе с парой культур нейтральные форматы. Другими словами, пользователь может изменить настройки в панели управления и отключить Parse / TryParse.

5 голосов
/ 07 декабря 2009

Это работает:

DateTime dt = DateTime.ParseExact ("Sat Sep 22 13:15:03 2018", "ddd MMM d HH:mm:ss yyyy", null)
5 голосов
/ 07 декабря 2009

Попробуйте 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);
4 голосов
/ 07 декабря 2009
var str = "Sat Sep 22 13:15:03 2018";
var date = DateTime.ParseExact(str, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...