2009-02-03 2 views
2

Кто-нибудь знает о простом (встроенном) способе преобразования строки типа «20081231T130000» (как мне кажется, ICalendar) в DateTime в C#? Или мне нужно разобрать строку?Convert Dates

+0

Человек, это VFAQ !! – Cerebrus

ответ

8

Попробуйте это:

DateTime when = DateTime.ParseExact("20081231T130000", 
    "yyyyMMddTHHmmss",CultureInfo.InvariantCulture); 

В стороне: это близко в формат, используемый в XML, но не совсем достаточно близко - иначе XmlConvert обручи это:

DateTime when = XmlConvert.ToDateTime("2008-12-31T13:00:00"); 
+0

Еще раз спасибо Марку. – user17510

2

Это, казалось, работало :

string dateTimeString = "20080115T115959"; 
string format = "yyyyMMddTHHmmss"; 
IFormatProvider us = new System.Globalization.CultureInfo("en-US", true); 

DateTime dt = DateTime.ParseExact(dateTimeString, format, us); 
+1

Должен быть HH для использования 24-часовых часов. –

+1

Нужно быть HH (0-23), а не hh (0-11) - и инвариант, вероятно, будет прекрасным, поскольку в строке нет информации о конкретной культуре. –

+0

Спасибо, что поймал это ... Думаю, именно поэтому я только в 11 репутации :) –