Подтвердить что ты не робот

Создание формата даты и времени для XML

Я пытаюсь создать timestamp для cXML, как показано ниже. Есть ли какая-либо функция в С#, которую я могу использовать для форматирования даты времени: 2011-06-09T16: 37: 17 + 16: 37

например.

<cXML payloadID="[email protected]"
timestamp="2011-06-09T16:37:17+16:37">
4b9b3361

Ответ 1

Используйте спецификатор формата "o" - читайте об этом в стандартных строках формата даты и времени в MSDN.

Шаблон для этого спецификатора отражает определенный стандарт (ISO 8601).

и

15.06.2009 13:45:30 → 2009-06-15T13: 45: 30.0900000

string formatted = DateTime.Now.ToString("o");

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

string formatted = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssK");

Ответ 2

Да, используя DateTime.ToString("s"), см. эту ссылку: Стандартные строки формата даты и времени. Имейте в виду, что "s" не содержит информацию о часовом поясе, тогда как "o" включает как дробные секунды, так и часовой пояс.

Вы также можете использовать метод XmlConvert.ToString, где вы также можете указать информацию о часовом поясе.

Ответ 3

Ниже приведен пример объявления даты в схеме:

<xs:element name="start" type="xs:date"/>

Элемент вашего документа может выглядеть так:

<start>2002-09-24</start>

Чтобы указать часовой пояс, вы можете ввести дату в UTC, добавив "Z" за датой:

<start>2002-09-24Z</start>

или вы можете указать смещение от времени UTC, добавив положительное или отрицательное время за датой:

<start>2002-09-24-06:00</start>

или

<start>2002-09-24+06:00</start>

Ответ 4

Вы можете использовать метод ToString

DateTime time = DateTime.Now;              
string format = "MMM ddd d HH:mm yyyy";   // or any format you want  
Console.WriteLine(time.ToString(format));