C# .Net DateTime中的毫秒格式
我正在格式化一个在XML中使用的日期时间,并且正在使用ISO8601格式化程序“o”。我注意到这会产生如下结果: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”格式选项,这样就不用考虑它是
2015-10-21T05:06:25.3800000-05:00
其他软件的类似输出似乎只包括毫秒部分的3个位置,例如:
2015-10-21T05:06:25.380-05:00
除了在文件中占用更多的空间外,在文件中添加额外的零还有什么问题吗?是否有一些选项可以在不使用自定义格式化程序的情况下在.Net中使用较短版本进行格式化?我更喜欢使用“o”格式选项,这样就不用考虑它是否兼容了如果你对准确日期/时间认真考虑,考虑使用.< /P> 如果您担心空间,那么请考虑您自己的格式化程序,但是当前方法的简单性(与“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”
)