Формат даты c # - PullRequest
       22

Формат даты c #

3 голосов
/ 11 июня 2009

Могу ли я получить DateTime.Now для форматирования в

2010-03-01T00:00:00Z

Я использовал это для форматирования части даты

DateTime.Now.Subtract(new TimeSpan(3001, 0, 0, 0)).GetDateTimeFormats()[5]

Ответы [ 6 ]

5 голосов
/ 11 июня 2009

Все следующие примеры предполагают, что местное время - лондонское, а 11 июня 2009 года - 5:11.

Если вы хотите использовать полный формат ISO 8601, вы можете использовать:

DateTime.Now.ToUniversalTime().ToString("o")
// Gives 2009-06-11T16:11:10.5312500Z

Или это, если вы хотите указать смещение часового пояса:

DateTime.Now.ToString("o")
// Gives 2009-06-11T17:11:10.5312500+0100

Если вы не хотите доли секунды, вы можете использовать это:

DateTime.Now.ToUniversalTime().ToString("s") + "Z"
// Gives 2009-06-11T16:11:10Z

или

DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssK")
// Also gives 2009-06-11T16:11:10Z

Обратите внимание, что следующее неверно , поскольку оно дает местное время, как будто это время UTC, которое истинно, только если вы где-то похожи на Лондон, и это середина зимы:

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ")
// Gives 2009-06-11T17:11:10Z which is wrong as it is an hour out.
4 голосов
/ 11 июня 2009

Очень просто, просто используйте строку формата, соответствующую вашим требованиям:

System.DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
'2009-06-11T16:26:47Z'
4 голосов
/ 11 июня 2009

Да, если вы используете ToString, посмотрите на странице MSDN форматирование даты и времени:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

2 голосов
/ 11 июня 2009

Я думаю, вы хотите это:

 XmlConvert.ToString(yourdate)
0 голосов
/ 11 июня 2009

Для всех ваших потребностей форматирования строки / даты в C #: http://blog.stevex.net/index.php/string-formatting-in-csharp/

Я вижу:

s   Sortable date string    2002-12-10T22:11:29
u   Universal sortable, local time  2002-12-10 22:13:50Z

Но, учитывая параметры на странице, вы можете создать точный формат вручную.

0 голосов
/ 11 июня 2009
DateTime.Now.Subtract(new TimeSpan(3001, 0, 0, 0)).ToString("s");

Вот список способов форматирования строки

...