2014-11-03 2 views
-1

У меня есть следующие строки DateTime 2014-11-03 08:44:00:082467 ZC# конвертировать строку на сегодняшний день - какой формат это?

Когда я пытаюсь сделать с простой Convert.ToDateTime я и ошибок, что это не признается строка DateTime.

Я также попробовал, что предложил в пост здесь: DateTime.Parse("2012-09-30T23:00:00.0000000Z") always converts to DateTimeKind.Local

var date = DateTime.ParseExact("2012-09-30T23:00:00.0000000Z", 
            "yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.AssumeUniversal | 
            DateTimeStyles.AdjustToUniversal); 

Но получил ту же ошибку. Какая строка DateTime это? и как я могу преобразовать его в объект DateTime? Кроме того, это не точное время (я за 2 часа до этого), поэтому я предполагаю, что это какое-то универсальное время.

Благодаря

+1

ли вы попробуйте изменить формат строки даты, чтобы соответствовать вашим данным ? –

+1

Очень странно иметь ':' перед значением subsecond вместо '.' –

+0

@PatrickHofman код, который я опубликовал, из другого сообщения, которое я нашел, - это не работает на моей строке. – developer82

ответ

1

Это формат, который относится к string, хотя это не является допустимой строкой в ​​соответствии с ISO 8601 стандартной:

var date = DateTime.ParseExact("2014-11-03 08:44:00:082467 Z", 
           "yyyy-MM-dd' 'HH:mm:ss:ffffff' Z'", 
           CultureInfo.InvariantCulture, 
           DateTimeStyles.AssumeUniversal | 
           DateTimeStyles.AdjustToUniversal); 

Dotnetfiddle

1

Похоже, формат ISO 8601.

DateTime.Now.ToString("o")

+0

так как я могу сделать преобразование из строки? – developer82

+0

'DateTime time = DateTime.ParseExact (date," o ", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);' будет анализировать время. Любые смещения, которые нужно применить, я оставлю вам. –

0

Две даты вы Предоставьте в своем вопросе совсем не то же самое!

Предположим, что ваш вопрос относится ко второму, который выглядит как стандартный, ответ:

string s = "2012-09-30T23:00:00.0000000Z"; 
var date = DateTime.ParseExact(s, "o", CultureInfo.InvariantCulture, 
            DateTimeStyles.AssumeUniversal | 
            DateTimeStyles.AdjustToUniversal); 
Console.WriteLine(date); 

(полный рабочий образец)