Создание формата даты и времени для XML
Я пытаюсь создать timestamp для cXML, как показано ниже. Есть ли какая-либо функция в С#, которую я могу использовать для форматирования даты времени: 2011-06-09T16: 37: 17 + 16: 37
например.
<cXML payloadID="[email protected]"
timestamp="2011-06-09T16:37:17+16:37">
Ответы
Ответ 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));