2011-06-11 45 views
17

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

例如,

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

有什么'+16的目的:37'部分?在[ISO 8601](http://en.wikipedia.org/wiki/ISO_time)中,它用于时区,但在这里似乎不是这种情况。 – svick 2011-06-11 12:04:39

回答

33

使用“O”格式说明 - 阅读这个MSDN上的standard Date and Time format strings文档。

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

和:

2009/6/15下午1时45分30秒 - > 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"); 
0

下面是一个有关schema中日期声明的例子:

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

文档中的元素看上去应该是这样的:

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

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

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

或者您可以指定offse通过添加一个正的或负的时间在日期后从UTC时间t:

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

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

您可以使用ToString方法

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