Как получить DateTime.Now() в формате YYYY-MM-DDThh: mm: ssTZD с использованием С#
Возможный дубликат:
datetime для строки с часовым поясом
Это один из стандартных форматов даты W3C, который я хочу использовать в файле Sitemap. Этот стандарт DateTime:
Завершить дату плюс часы, минуты и секунды: YYYY-MM-DDThh: mm: ssTZD, где TZD = обозначение часового пояса (Z или + hh: mm или -hh: mm) (например, 1997-07-16T19: 20: 30 + 01: 00)
Я использую следующий код для получения текущего DateTime в этом формате:
DateTime.Now.ToString("yyyy-MM-ddThh:mm:ssTZD");
Но это дает: 2011-08-10T02: 27: 20TZD
По-видимому, DateTime.Now не распознает параметр TZD в параметре. Пожалуйста помоги. Как я могу получить текущую DateTime в этом формате?
Ответы
Ответ 1
Используйте спецификатор формата zzz
, чтобы получить смещение часового пояса как часы и минуты. Вы также хотите использовать спецификатор формата HH
, чтобы получить часы в 24-часовом формате.
DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz")
Результат:
2011-08-09T23:49:58+02:00
В некоторых настройках культуры используются периоды вместо двоеточий для времени, поэтому вы можете использовать литеральные двоеточия вместо разделителей времени:
DateTime.Now.ToString("yyyy-MM-ddTHH':'mm':'sszzz")
Пользовательские строки формата даты и времени
Ответ 2
используйте zzz вместо TZD
Пример:
DateTime.Now.ToString("yyyy-MM-ddThh:mm:sszzz");
Ответ:
2011-08-09T11:50:00:02+02:00
Ответ 3
Попробуйте следующее:
DateTime.Now.ToString("yyyy-MM-ddThh:mm:sszzz");
zzz
является смещением часового пояса.