2014-10-03 2 views
1

У меня есть 03-10-14 18:44:58. Временной частью является GMT , где 03 = день 10 = месяц = ​​14 = год и 18 = час 44 = минута 58 = секундыParse GMT DateTIme

Как я могу разобрать это? Это то, что я использую, но он не работает:

var date = "03-10-14 18:44:58"; 
_Packet.Time = DateTime.ParseExact(datetime, "dd-MM-yy HH:mm:ss 'GMT'", CultureInfo.CurrentCulture, DateTimeStyles.AllowWhiteSpaces); 
+1

«его не работает» никогда не хватает информации. Что не так? (В идеале укажите короткий, но полный пример. Затем начните использовать Noda Time :) –

+0

Я буду смотреть на время ноды – Jesse

+4

Ваша строка формата содержит текст '' GMT'', но ваша строка * input * не имеет значения. –

ответ

5

Конечно, это не работает, так как модель синтаксического анализа не соответствует строке даты ... Ваша входная строка не содержит строку GMT ,

Попробуйте вместо этого:

var date = DateTime.ParseExact(datetime, "dd-MM-yy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); 

Здесь я использовал AssumeUniversal и AdjustToUniversal флаги. Используемые вместе, дайте дату UTC.

Если вы хотите, чтобы преобразовать его в местное время, а также:

date = date.ToLocalTime();