преобразование грязной строки даты в объект dateTime в c # - PullRequest
0 голосов
/ 15 марта 2012

Как я могу преобразовать String 20120313 в DateTime объект, который содержит значение 13-Mar-2012?

.(преобразование в 01.01.2001)

Ответы [ 3 ]

3 голосов
/ 15 марта 2012

Вам нужно использовать DateTime.ParseExact:

DateTime date = DateTime.ParseExact(text, "yyyyMMdd",
                                    CultureInfo.InvariantCulture);

Тогда, если вы хотите, чтобы это было "13-Mar-2012", вам нужно:

string reformatted = date.ToString("dd-MMM-yyyy");

... при желании можно передать любую культуру, которую вы хотите использовать для названий месяцев и т. Д.

(Другой альтернативой является использование моего Noda Time , которое позволяет вам анализировать это как просто локальная дата , не беспокоясь о том, какое время она будет использовать, часовые пояса и т. Д.)

2 голосов
/ 15 марта 2012

Если вы имеете в виду определенный формат, полезно ParseExact:

string s = "20120313";
var when = DateTime.ParseExact(s, "yyyyMMdd", CultureInfo.InvariantCulture);

Существует также перегрузка, которая принимает несколько форматов кандидатов.

1 голос
/ 15 марта 2012

Попробуйте DateTime.ParseExact:

string date = DateTime.ParseExact(reader["date_id"], "yyyyMMdd", new CultureInfo("en"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...