在 C# 中,如何获取以下格式的当前 DateTime?2011-08-10T21:36:01.6327538Z
问问题
28239 次
4 回答
29
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")
请记住,DateTime.Now 有时只能精确到千分之一秒,具体取决于系统时钟。 此页面显示以下内容:
可以显示非常小的一秒小数单位,例如千分之一秒或十万分之一秒。但是,这些值可能没有意义。日期和时间值的精度取决于系统时钟的分辨率。在 Windows NT 3.5 和更高版本以及 Windows Vista 操作系统上,时钟的分辨率约为 10-15 毫秒。
但是,如果您DateTime
自己填充,则可以使其更精确。我不知道任何其他比DateTime.UtcNow
.
此外,DateTime.UtcNow.ToString("o")
会给你一个序数日期时间字符串。这没有在末尾指定时区,因此Z
如果您正在处理 Utc,您仍然需要添加到末尾
于 2011-10-13T00:03:50.847 回答
3
如果您想要 UTC 时间(这是 Z 所暗示的),那么您需要确保它们是 UTC 时间......
IE
DateTime.UtcNow.ToString("O");
或假设您知道您的日期时间是本地的...
DateTime foo = MethodThatReturnsALocalTime();
foo.ToUniversalTime().ToString("O");
FWIW: DateTime.UtcNow 比 DateTime.Now 快,因为它不需要进行时区查找,在 Compact Framework 上,由于某种原因,这种差异可能非常明显。
于 2011-10-13T00:53:48.013 回答
1
试试这个:
var xs = DateIime.Now;
var frmtdDatetime = xs.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff");
并查看此msdn 链接
于 2011-10-13T00:02:20.173 回答
1
您可以尝试:
DateTime.Now.ToString("o");
其中还包括时区组件。- 或者 -
DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff")
于 2011-10-13T00:03:02.913 回答