我正在嘗試爲cXML生成時間戳,如下所示。在C#中是否有任何函數可用於將日期時間格式化爲:2011-06-09T16:37:17 + 16:37生成XML的日期時間格式
例如,
<cXML payloadID="[email protected]"
timestamp="2011-06-09T16:37:17+16:37">
我正在嘗試爲cXML生成時間戳,如下所示。在C#中是否有任何函數可用於將日期時間格式化爲:2011-06-09T16:37:17 + 16:37生成XML的日期時間格式
例如,
<cXML payloadID="[email protected]"
timestamp="2011-06-09T16:37:17+16:37">
使用「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");
是,使用DateTime.ToString("s")
,看到此鏈接:Standard Date and Time Format Strings。請注意,"s"
不包含時區信息,而"o"
確實包含小數秒和時區。
您還可以使用XmlConvert.ToString
方法,您也可以在其中指定時區信息。
下面是一個有關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>
您可以使用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'部分?在[ISO 8601](http://en.wikipedia.org/wiki/ISO_time)中,它用於時區,但在這裏似乎不是這種情況。 – svick 2011-06-11 12:04:39