如果我执行以下PowerShell脚本:

$> ([DateTime]"2023-10-16T16:56:14.052Z" - [DateTime]"1970-01-01T00:00:00.000Z").TotalMilliseconds

它给出结果(基于TimeSpan对象):

1697478974052

但是,如果改用DateTimeOffset对象:

$> ([DateTimeOffset]"2023-10-16T16:56:14.052Z").ToUnixTimeMilliseconds

我得到了一个不同的结果,似乎正好相差3600000毫秒(正好1个小时).但是,这似乎是自纪元(1970-01-01T00:00:00Z)以来的正确毫秒数.

1697475374052

我原以为这两个命令会产生相同的毫秒数.它使TimeSpan看起来没有正确计算毫秒数.我遗漏了什么?

推荐答案

当时间正好还有一个小时的时候,它向我尖叫着夏令时.在带有[DateTime]的第一个命令中,它可能接受本地机器的时区夏令时配置(提前1小时).

第二个命令是使用UTC表示的时间,如图here所示.UTC没有夏令时,因为它是其他时区相对的恒定参照系.

.net相关问答推荐

尽管有`disable`注释,但未 suppress Pylint语法错误

SeriLog LogConext.PushProperty在ASP.NET MVC 5中不能使用OWIN中间件

如何在 Raspberry Pi 上托管 WASM 文件?

System.IO.Directory.Exists 在 LINQ 语句中失败,但在 foreach 循环中没有

为什么(真的吗?)List 实现所有这些接口,而不仅仅是 IList

无法加载文件或程序集 不支持操作. (来自 HRESULT 的异常:0x80131515)

线程安全性的单元测试?

无法解析此引用.找不到程序集

调整小数精度,.net

将 DataRowCollection 转换为 IEnumerable

如何结合 ||条件语句中的运算符

检索字典值最佳实践

多个添加的实体可能具有相同的主键

C#As的 VB.NET 类似功能

如何将 System.Type 转换为其可为空的版本?

资源(.resx)文件有什么好处?

实体框架中的 POCO 是什么?

WebClient.DownloadString 由于编码问题导致字符损坏,但浏览器正常

ADO.NET Entity Framework:更新向导不会添加表

如何使用匿名方法返回值?