【发布时间】:2021-10-25 15:45:46
【问题描述】:
我正在用 Bash 翻译一个 PowerShell 脚本。
这是在 PowerShell 中获取当前日期时间的 ticks 的方式:
[System.DateTime]::Now.Ticks;
通过遵循definition of Ticks,这就是我尝试在bash 中使用date 命令近似相同计算的方式:
echo $(($(($(date -u '+%s') - $(date -d "0001-01-01T00:00:00.0000000 UTC" '+%s'))) * 10000000 ))
这是我上次尝试时得到的:
$ echo $(($(($(date -u '+%s') - $(date -d "0001-01-01T00:00:00.0000000 UTC" '+%s'))) * 10000000 )) ; pwsh -c "[System.DateTime]::Now.Ticks;"
637707117310000000
637707189324310740
尤其是前 7 位数字相同,但位置 8 和 9 的数字在两个值之间仍然相差太大。
我计算出这意味着这两个值之间只有 2 小时的差异。但为什么?它不能是时区,因为我在两个 date 命令中都指定了 UTC 时区,对吧?你怎么看?
注意:我对时区的怀疑正在增加,因为我目前居住在 UTC+2(因此与 UTC 相差 2 小时),但这怎么可能,因为我明确指定 UTC 作为时区在date 命令中?
【问题讨论】:
标签: bash powershell datetime