Как преобразовать данные в объект DateTime - PullRequest
2 голосов
/ 15 июля 2010

Как преобразовать строку даты в общем виде "ccyymmdd" в объект DateTime в C #?

Например, как мне преобразовать "20100715" в объект DateTime.

Пожалуйста - никаких ссылок RTFM на Microsoft Tech Docs.

Большое спасибо ...

Ответы [ 6 ]

7 голосов
/ 15 июля 2010
using System.Globalization;

DateTime.ParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture);
3 голосов
/ 15 июля 2010

var dt = DateTime.Parse("your date string").ToString("yymmdd");

Не думаю, что cc является допустимым форматированием даты?

Как указывает Ричард, вы также можете использовать DateTime.ParseExact, который позволяет использовать для анализа информацию о культуре, или вы можете использовать DateTime.TryParseExact, что совпадает с DateTime.ParseExact, но если есть исключение, тогда Возвращается пустая дата, а не исключение.

EDIT:

Вопрос был обновлен, так что DateTime специально возвращается. В этом случае вы можете опустить .ToString() часть моего ответа. Вызов DateTime.Parse() вернет объект DateTime. При получении значения даты через ToString() просто передайте необходимую строку форматирования, чтобы получить дату в нужном формате. Приветствия. Иак.

1 голос
/ 15 июля 2010

Если ваша строка даты уже очищена (заимствовано из ответа Майка):

DateTime dt = DateTime.ParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture);

В противном случае:

DateTime dt;
if (!DateTime.TryParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
    // Handle bad date
}
1 голос
/ 15 июля 2010

Взгляните на это и это

DateTime.Parse();
DateTime.ParseExact();

И стоит упомянуть

DateTime.TryParse();
0 голосов
/ 15 июля 2010

Я не уверен, что такое часть "cc", но есть несколько вариантов.

DateTime.Parse (string) может быть в состоянии преобразовать строку, ноесли строка в нестандартном формате, вам, возможно, придется сначала выполнить предварительное преобразование.

0 голосов
/ 15 июля 2010

System.DateTime.Parse (yourDateString)

Возможно, вам придется манипулировать вашей строкой в ​​формате, который метод может обработать первым.

См. http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

для получения дополнительной информации

...