2014-01-10 1 views
2
var timestamp = DateTime.ParseExact("20140101T000000Z", "YYYYMMDDThhmmssZ", CultureInfo.InvariantCulture); 

System.FormatException was unhandled by user code 
    HResult=-2146233033 
    Message=String was not recognized as a valid DateTime. 
    Source=mscorlib 

Это не имеет никакого смысла для меня, как YYYYMMDDThhmmssZ является ISO-8601 YYYY-MM-DDThh:mm:ssZ со специальными символами форматирований удалены.System.DateTime.ParseExact: непризнанный формат строка

+0

Я отредактировал ваш вопрос. Посмотрите, почему: http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles –

ответ

5

Проблема в том, что YYYY и DD не являются допустимыми спецификаторами формата. Используйте yyyy и dd вместо этого, и если вы хотите использовать 24-часовой формат, используйте HH:

var timestamp = DateTime.ParseExact("20140101T000000Z", "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture); 

отметить также, что Z здесь интерпретируются как буквальное Z характера. Это не замена z, спецификатора часового пояса.

Дальнейшее чтение

+0

Отличный ответ :) – Nico

1

Ваш DateFormat неверен.

YYYY должен быть yyyy и DD должны быть dd

следующий полный формат должен работать

yyyyMMddTHHmmssZ

, такие как

var timestamp = DateTime.ParseExact("20140101T000000Z", "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture); 

MSDN для пользовательского форматирования: http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx