C# .Net DateTime中的毫秒格式

C# .Net DateTime中的毫秒格式,c#,xml,datetime,datetime-format,C#,Xml,Datetime,Datetime Format,我正在格式化一个在XML中使用的日期时间,并且正在使用ISO8601格式化程序“o”。我注意到这会产生如下结果: 2015-10-21T05:06:25.3800000-05:00 其他软件的类似输出似乎只包括毫秒部分的3个位置,例如: 2015-10-21T05:06:25.380-05:00 除了在文件中占用更多的空间外,在文件中添加额外的零还有什么问题吗?是否有一些选项可以在不使用自定义格式化程序的情况下在.Net中使用较短版本进行格式化?我更喜欢使用“o”格式选项,这样就不用考虑它是

我正在格式化一个在XML中使用的日期时间,并且正在使用ISO8601格式化程序“o”。我注意到这会产生如下结果:

2015-10-21T05:06:25.3800000-05:00
其他软件的类似输出似乎只包括毫秒部分的3个位置,例如:

2015-10-21T05:06:25.380-05:00

除了在文件中占用更多的空间外,在文件中添加额外的零还有什么问题吗?是否有一些选项可以在不使用自定义格式化程序的情况下在.Net中使用较短版本进行格式化?我更喜欢使用“o”格式选项,这样就不用考虑它是否兼容了 如果您担心空间,那么请考虑您自己的格式化程序,但是当前方法的简单性(与“o”相同)。什么是值得您花费时间、易于编程(考虑以下因素)或磁盘空间的

XElement xdate = new XElement("date", DateTime.Now);
DateTime dnow = (DateTime)xdate;
您会注意到,输出看起来像“o”,但不同(我的是-07:00),因为我在不同的时区

<date>2015-12-09T15:34:02.0177724-07:00</date>
2015-12-09T15:34:02.0177724-07:00

考虑到毫秒是3位数,为什么需要更多?@ChuckSavage,我很确定OP只需要3位数,但正在考虑是否值得将简单的
“o”
格式说明符换成从头开始的格式。根据“小数位数的小数位数没有限制”因此,问题是您正在与之通信的软件是否能够理解格式。如果不是,则必须编写自定义格式字符串(.NET的“o”等于
“yyyy”-“MM”-“dd'T'HH”:“MM”:“ss”。“fffffff k”