我正在尝试生成 cXML 时间戳,格式如下。在 C# 中是否有可以使用的函数来格式化日期时间为:2011-06-09T16:37:17+16:37
例如:
<cXML payloadID="accountsuser@bla.com"
timestamp="2011-06-09T16:37:17+16:37">
string formatted = DateTime.Now.ToString("o");
如果这不是你想要的,你需要使用一个自定义格式字符串 - 我认为你需要这样做,因为偏移量不是标准的。
string formatted = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssK");
DateTime.ToString("s")
,请参考此链接:标准日期和时间格式字符串。需要注意的是,"s"
不包含时区信息,而"o"
则同时包含了秒数和时区信息。XmlConvert.ToString
方法,在其中可以指定时区信息。<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>
DateTime time = DateTime.Now;
string format = "MMM ddd d HH:mm yyyy"; // or any format you want
Console.WriteLine(time.ToString(format));