You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中获取Unix时间戳秒数的最惯用方法是什么?

PowerShell中获取UTC日期与Unix时间戳秒数的惯用方式

首先咱们拆解你遇到的问题:你用[datetimeoffset]得到的结果和Get-Date不同,核心原因是两者对时区的默认处理逻辑不一样。当你执行([datetimeoffset] '2020-01-01')时,PowerShell会根据系统本地时区解析这个日期,ToUnixTimeSeconds()返回的是该本地时间对应的UTC时间戳;而Get-Date -Date '2020-01-01' -UFormat %s中,-Date默认解析为本地时间,%s计算的是从1970-01-01 UTC到这个本地时间的UTC等效时间的秒数。接下来咱们聊聊符合PowerShell惯用风格的解决方案:

一、用Get系列命令获取UTC日期的方法

1. 获取当前UTC时间

直接使用-Utc参数即可:

Get-Date -Utc

输出示例:Wednesday, October 11, 2023 2:30:00 PM(标准UTC时间)

2. 将本地时间转换为UTC

先获取目标本地时间,再调用ToUniversalTime()方法转换:

# 将指定本地日期转为UTC
(Get-Date -Date '2020-01-01').ToUniversalTime()

# 将当前本地时间转为UTC
(Get-Date).ToUniversalTime()

3. 直接解析UTC格式的日期字符串

如果你的日期字符串带UTC标识(末尾加Z),Get-Date会直接解析为UTC时间:

Get-Date -Date '2020-01-01Z'

二、PowerShell中获取Unix时间戳秒数的惯用方式

要获取准确的UTC Unix时间戳,推荐以下几种贴合PowerShell风格的方法:

1. 用Get-Date结合-UFormat %s(最直接)

%s是专门返回Unix时间戳的格式符(带小数精度),配合-Utc参数确保基于UTC计算:

# 获取当前UTC时间的Unix秒数(带小数)
Get-Date -Utc -UFormat %s

# 获取指定UTC日期的Unix秒数
Get-Date -Date '2020-01-01Z' -UFormat %s

# 将本地日期转为UTC后获取Unix秒数
(Get-Date -Date '2020-01-01').ToUniversalTime() | Get-Date -UFormat %s

如果需要整数秒数,直接做类型转换即可:

[int64](Get-Date -Utc -UFormat %s)

2. 通过时间差计算(更灵活)

利用[datetime]::UnixEpoch(1970-01-01 UTC)和目标UTC时间的差值计算,这种方式能灵活调整精度(比如毫秒、分钟等):

# 获取当前UTC时间的Unix秒数(整数)
[int64]((Get-Date -Utc) - [datetime]::UnixEpoch).TotalSeconds

# 获取指定UTC日期的Unix秒数
$targetDate = Get-Date -Date '2020-01-01Z'
[int64]($targetDate - [datetime]::UnixEpoch).TotalSeconds

3. 兼容.NET习惯的DateTimeOffset写法

如果你偏好.NET的DateTimeOffset,也可以用PowerShell风格的写法确保基于UTC:

# 直接创建UTC的DateTimeOffset
([datetimeoffset]::Parse('2020-01-01', [cultureinfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::AssumeUniversal)).ToUnixTimeSeconds()

# 从Get-Date的UTC时间转换
([datetimeoffset](Get-Date -Utc)).ToUnixTimeSeconds()

总结

如果要最贴合PowerShell的惯用风格,优先选择Get-Date -Utc -UFormat %s(配合类型转换取整数)来获取Unix时间戳秒数;处理指定日期时,记得确保日期是基于UTC的(要么直接解析UTC字符串,要么将本地时间转成UTC)。

内容的提问来源于stack exchange,提问作者Anthony Mastrean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:57:56