XML文件中用于日期/时间的正确格式是什么

Jon*_*n B 96 .net xml datetime

使用.NET写入XML文件时,我使用什么格式的日期/时间?我只是使用DateTime.ToString(),还是必须使用特定的格式?

Rya*_*yan 134

我总是使用ISO 8601格式(例如2008-10-31T15:07:38.6875000-05:00) - date.ToString("o").它也是XSD日期格式.这是首选格式和标准日期和时间格式字符串,但如果您不希望日期和时间之间的"T",则可以根据需要使用手动格式字符串:date.ToString("yyyy-MM-dd HH:mm:ss");

编辑:如果您使用的是XSD或Web服务中生成的类,则可以直接将DateTime实例分配给类属性.如果您正在编写XML文本,请使用上面的内容.


jon*_*nii 42

编辑:这是一个糟糕的建议.使用"o",如上所述."s" 做错了.

我一直用这个:

dateTime.ToUniversalTime().ToString("s");
Run Code Online (Sandbox Code Playgroud)

如果您的架构如下所示,这是正确的:

<xs:element name="startdate" type="xs:dateTime"/>
Run Code Online (Sandbox Code Playgroud)

这将导致:

<startdate>2002-05-30T09:00:00</startdate>
Run Code Online (Sandbox Code Playgroud)

您可以在此处获取更多信息:http://www.w3schools.com/xml/schema_dtypes_date.asp

  • 请记住,这会将日期转换为UTC.处理日期时,必须根据区域设置将其转换回当前时区(除非您正在处理UTC中的所有内容).此外,通常你会在末尾加上一个'Z'来表示日期是UTC. (8认同)

chi*_*emp 5

如果您手动组装 XML 字符串,var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")); 那么将输出官方的 XML 日期时间格式。但如果您使用内置的序列化方法,则不必担心格式。

  • 在这种情况下,所有日期必须采用 UTC 时区,否则使用“Z”后缀是错误的。 (3认同)