Я хочу разобрать следующий формат даты и времени:Анализировать дата время с PM/AM
8/1/2013 3:52:05 PM
Что я должен использовать для формата?
DateTime.ParseExact("8/1/2013 3:52:05 PM", "format", CultureInfo.InvariantCulture);
Я хочу разобрать следующий формат даты и времени:Анализировать дата время с PM/AM
8/1/2013 3:52:05 PM
Что я должен использовать для формата?
DateTime.ParseExact("8/1/2013 3:52:05 PM", "format", CultureInfo.InvariantCulture);
Custom Date and Time Format Strings
"tt"
- АМ/РМ целеуказатель.
Так что ваша строка формата должна быть: M/d/yyyy h:mm:ss tt
Console.WriteLine(DateTime.ParseExact("8/1/2013 3:52:05 PM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture));
печатает 2013-08-01 15:52:05
Но, вы легко можете сделать то же самое без указания формата:
DateTime.Parse("8/1/2013 3:52:05 PM", CultureInfo.GetCultureInfo("en-us"))
Works просто хорошо. Ваш ввод форматируется с использованием формата en-US
.
Осторожно, ваше примечание AM/PM, зависит от вашей версии .NET. Из [MSDN] (http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx): В .NET Framework 4 метод ParseExact генерирует исключение FormatException, если строка, подлежащая анализу, содержит компонент часа и обозначение AM/PM, которое не согласуется. В .NET Framework 3.5 и более ранних версиях обозначение AM/PM игнорируется. – bland
DateTime date = DateTime.ParseExact("8/1/2013 3:52:05 PM", "d/M/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
Console.WriteLine(date);
Выход будет;
1/8/2013 3:52:05 PM
Здесь DEMO
.
Дополнительная литература;
[MSDN] (http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx) обеспечивает четкие примеры того, как использовать ParseExact, в том числе 'format' параметр. – bland
Обязательная ссылка: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx. в частности «tt» для индикатора AM/PM. –