准确的日期时间字符串格式

4
我有一个DateTime变量,它保存以下值:5/11/2014 7:56:26 am 我目前正在使用以下代码将其格式化为字符串:uDate.ToString("s")。使用此代码,我得到以下值:2014-11-05T07:56:26 我需要更精确的值。我想要获取的确切值在以下精度范围内:2014-11-05T07:56:26.4 我在以下链接上进行了一些研究: http://www.w3.org/TR/NOTE-datetime
以下是我的发现:
这个配置文件没有指定可以用多少位数字来表示秒的小数。允许秒的分数的采用标准必须同时指定最小位数(大于或等于1)和最大位数(最大可以声明为“无限制”)。
我想要获取的值是Azure上在Web服务请求中显示DateTime变量时使用的值。
如何格式化自己的DateTime字符串,使它们与Azure使用的格式相同? Azure是否使用特定格式?
基本上,我如何格式化DateTime字符串比代码uDate.ToString("s")更精确。
提前感谢。
2个回答

3
“s”标准格式说明符使用当前区域设置的“SortableDateTimePattern”属性,但不包括毫秒部分。
无论使用哪种文化,此格式说明符始终相同,为“yyyy'-'MM'-'dd'T'HH':'mm':'ss”格式。
您可以使用自定义日期和时间格式字符串,例如:
uDate.ToString("yyyy-MM-dd'T'HH:mm:ss.f");

3

我认为最“完整”的信息应该使用“O”值,包括小数和时区(如果有)。

var myDate = DateTime.Now.ToString("o");

另请参阅此文章。微软表示,“符合ISO 8601”,每个.Net平台(包括Azure)都可以将此字符串读取为DateTime,并在可用时正确设置“DateTimeKind”。


但是这个说明符的毫秒部分是 ..fffffff..,我认为 OP 不想要这个。 - Soner Gönül
实际上,如果您想更准确地提供信息,您必须提供更多的信息,包括时间分数和时区,这也是网络服务的标准化要求。 - rodrigogq
1
谢谢。准确性比“s”格式高得多,而且按预期工作。 - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接