生成XML的日期时间格式

时间:2011-06-11 04:52:25

标签: xml c#-3.0

我正在尝试为cXML生成时间戳,如下所示。 C#中是否有任何函数可用于将日期时间格式化为:2011-06-09T16:37:17 + 16:37

e.g。

<cXML payloadID="accountsuser@bla.com"
timestamp="2011-06-09T16:37:17+16:37">

4 个答案:

答案 0 :(得分:37)

使用“o”格式说明符 - 在MSDN上的standard Date and Time format strings文档中阅读此内容。

  

此说明符的模式反映了已定义的标准(ISO 8601)。

  

6/15/2009 1:45:30 PM - &gt; 2009-06-15T13:45:30.0900000

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

如果这不是你想要的,你需要使用custom format string - 我相信你需要这样做,因为偏移不是标准的。

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

答案 1 :(得分:7)

是的,使用DateTime.ToString("s"),请参阅此链接:Standard Date and Time Format Strings。请注意,"s"不包含时区信息,而"o"确实包含小数秒和时区。

您还可以使用XmlConvert.ToString方法,您也可以在其中指定时区信息。

答案 2 :(得分:1)

以下是架构中日期声明的示例:

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

文档中的元素可能如下所示:

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

要指定时区,您可以通过在日期后面添加“Z”来输入UTC时间的日期:

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

或者您可以通过在日期后面添加正或负时间来指定与UTC时间的偏移量:

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

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

答案 3 :(得分:0)

您可以使用ToString方法

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