准确的DateTime字符串格式

时间:2014-11-05 12:20:53

标签: c# datetime azure formatdatetime

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

我想要获得的值是在{8}中在{+ 1}}变量中使用的值,用于在Web服务请求中显示Azure变量。

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

基本上,如何将Azure字符串格式化为比代码更准确:DateTime

提前致谢。

2 个答案:

答案 0 :(得分:2)

"s" standard format specifier使用CurrentCulture的{​​{3}},但它不包含毫秒部分。

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

您可以使用SortableDateTimePattern property之类的;

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

答案 1 :(得分:2)

我相信最多"完成"信息将是使用" O"值,包括分数和TimeZone(如果可用)。

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

另见this文章。微软声称"符合ISO 8601"并且每个.Net平台(也称为Azure)都能够将此字符串作为DateTime读取,并且还可以正确设置' DateTimeKind'可用时。