精确的DateTime字符串格式

本文关键字:字符串 格式 DateTime | 更新日期: 2023-09-27 18:29:09

我有一个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的数字)和数字(最大值可以表示为"无限制")。

我想要获得的值是在web服务请求中显示DateTime变量时在Azure上使用的值。

如何格式化自己的DateTime字符串,使其与Azure上使用的格式相同?Azure是否使用特定格式?

基本上,我如何将DateTime字符串格式化为比代码更准确:uDate.ToString("s")

提前谢谢。

精确的DateTime字符串格式

我相信最"完整"的信息是使用"O"值,包括分数和时区(如果可用)。

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

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

"s"标准格式说明符使用CurrentCultureSortableDateTimePattern属性,并且不包括毫秒部分。

无论使用何种区域性,此格式说明符始终相同,并且是"yyyy'-'MM'-'dd'T'HH':'mm':'ss"格式。

您可以使用自定义日期和时间格式字符串,如;

uDate.ToString("yyyy-MM-dd'T'HH:mm:ss.f");