5

我可以将 DateTime.Now 格式化为

2010-03-01T00:00:00Z

我用它来格式化日期部分

DateTime.Now.Subtract(new TimeSpan(3001, 0, 0, 0)).GetDateTimeFormats()[5]
4

6 回答 6

8

以下所有示例均假设当地时间是伦敦时间,并且是 2009 年 6 月 11 日下午 5:11。

如果您想要完整的 ISO 8601 格式,您可以使用:

DateTime.Now.ToUniversalTime().ToString("o")
// Gives 2009-06-11T16:11:10.5312500Z

或者,如果您想指定时区偏移量:

DateTime.Now.ToString("o")
// Gives 2009-06-11T17:11:10.5312500+0100

如果你不想要一秒钟的时间,你可以使用这个:

DateTime.Now.ToUniversalTime().ToString("s") + "Z"
// Gives 2009-06-11T16:11:10Z

或者:

DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssK")
// Also gives 2009-06-11T16:11:10Z

请注意,以下内容是错误的,因为它给出了本地时间,就好像它是 UTC 时间,只有当您在伦敦这样的地方并且它是冬天的中间时,这才是正确的:

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ")
// Gives 2009-06-11T17:11:10Z which is wrong as it is an hour out.
于 2009-06-11T16:28:56.247 回答
4

是的,如果您使用 ToString,请查看 MSDN 页面以了解日期时间格式:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2009-06-11T15:37:58.053 回答
4

很简单,只需使用符合您要求的格式字符串即可:

System.DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
'2009-06-11T16:26:47Z'
于 2009-06-11T15:44:48.537 回答
2

我猜你想要这个:

 XmlConvert.ToString(yourdate)
于 2009-06-11T15:38:03.093 回答
0
DateTime.Now.Subtract(new TimeSpan(3001, 0, 0, 0)).ToString("s");

这是格式化字符串的方法列表

于 2009-06-11T15:39:01.843 回答
0

对于所有 C# 字符串/日期格式化需求:http: //blog.stevex.net/index.php/string-formatting-in-csharp/

我懂了:

s   Sortable date string    2002-12-10T22:11:29
u   Universal sortable, local time  2002-12-10 22:13:50Z

但是给定页面上的选项,您可以手动构建精确的格式。

于 2009-06-11T15:42:11.633 回答