Есть ли стандартный способ в .NET/С# для преобразования объекта datetime в ISO 8601 формат yyyy-mm-dd hh: mm: сс?
Или мне нужно сделать некоторые манипуляции с строкой, чтобы получить строку даты?
Есть ли стандартный способ в .NET/С# для преобразования объекта datetime в ISO 8601 формат yyyy-mm-dd hh: mm: сс?
Или мне нужно сделать некоторые манипуляции с строкой, чтобы получить строку даты?
Нет стандартного формата для читаемого формата 8601. Вы можете использовать пользовательский формат:
theDate.ToString("yyyy-MM-dd HH':'mm':'ss")
(Стандартный формат "s" даст вам "T" между датой и временем, а не пробелом.)
Чтобы использовать строгий ISO8601
, вы можете использовать строку формата s
(Sortable):
myDate.ToString("s"); // example 2009-06-15T13:45:30
Это короткая рука для этой строки пользовательского формата:
myDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
И, конечно же, вы можете создавать свои собственные строки в формате.
Дополнительная информация:
Чтобы добавить немного больше информации, которая меня смутила; Я всегда думал, что такой же результат может быть достигнут так:
theDate.ToString("yyyy-MM-dd HH:mm:ss")
Однако, если ваша текущая культура не использует двоеточие (:) в качестве разделителя часов и вместо этого использует полный стоп (.), он может вернуться следующим образом:
2009-06-15 13.45.30
Просто хотел добавить, почему предоставленный ответ должен быть таким, как есть,
theDate.ToString("yyyy-MM-dd HH':'mm':'ss")
: -)
date.ToString("o") // The Round-trip ("O", "o") Format Specifier
date.ToString("s") // The Sortable ("s") Format Specifier, conforming to ISO86801
Метод DateTime:: ToString() имеет форматировщик строк, который может использоваться для вывода даты и времени в любом требуемом формате. Подробнее см. Метод DateTime.ToString(String).
Для тех, кто использует этот формат во все timme, как я, я сделал метод расширения. Я просто хотел поделиться, потому что я думаю, что это может быть полезно для вас.
/// <summary>
/// Convert a date to a human readable ISO datetime format. ie. 2012-12-12 23:01:12
/// this method must be put in a static class. This will appear as an available function
/// on every datetime objects if your static class namespace is declared.
/// </summary>
public static string ToIsoReadable(this DateTime dateTime)
{
return dateTime.ToString("yyyy-MM-dd HH':'mm':'ss");
}