3

我有一个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 服务请求中Azure显示变量时使用的值。DateTime

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

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

提前致谢。

4

2 回答 2

2

"s"标准格式说明符使用您的SortableDateTimePattern属性CurrentCulture,它不包括毫秒部分。

无论您使用哪种文化,此格式说明符始终相同,并且它是"yyyy'-'MM'-'dd'T'HH':'mm':'ss"格式。

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

uDate.ToString("yyyy-MM-dd'T'HH:mm:ss.f");
于 2014-11-05T12:29:14.040 回答
2

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

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

另见这篇文章。微软声明“符合 ISO 8601”,每个 .Net 平台(也包括 Azure)都能够将此字符串读取为 DateTime,并且在可用时正确设置“DateTimeKind”。

于 2014-11-05T12:29:44.297 回答