为XML生成日期时间格式

为XML生成日期时间格式,xml,c#-3.0,Xml,C# 3.0,我正在尝试为cXML生成时间戳,如下所示。C#中是否有任何函数可用于将日期时间格式化为:2011-06-09T16:37:17+16:37 e、 g 使用“o”格式说明符-请阅读MSDN文档中的此说明符 此说明符的模式反映了已定义的标准(ISO 8601) 以及: 2009年6月15日下午1:45:30->2009-06-15T13:45:30.0900000 如果这不是你想要的,你将需要使用a-我相信你需要这样做,因为偏移量不是标准的 string formatted = DateTime.

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

e、 g


使用“o”格式说明符-请阅读MSDN文档中的此说明符

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

以及:

2009年6月15日下午1:45:30->2009-06-15T13:45:30.0900000

如果这不是你想要的,你将需要使用a-我相信你需要这样做,因为偏移量不是标准的

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

是,使用
DateTime.ToString(“s”)
,请参阅以下链接:。请注意,
“s”
不包括时区信息,而
“o”
同时包括小数秒和时区


也可以使用该方法,在该方法中还可以指定时区信息。

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

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

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

<start>2002-09-24</start>
2002-09-24
要指定时区,可以通过在日期后添加“Z”以UTC时间输入日期:

<start>2002-09-24Z</start>
<start>2002-09-24-06:00</start>
2002-09-24Z
或者,您可以通过在日期后添加正时间或负时间来指定与UTC时间的偏移量:

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

2002-09-24+06:00

您可以使用ToString方法

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

+16:37
部分的目的是什么?在这里,它是用来表示时区的,但这里的情况似乎不是这样。请看第二个答案。使用“o”,您需要“处理”UTC,这对本地应用程序来说是不必要的。“s”将是我应得的!
DateTime time = DateTime.Now;              
string format = "MMM ddd d HH:mm yyyy";   // or any format you want  
Console.WriteLine(time.ToString(format));