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

EPOC时间转DateTime后提取时间并计算两时间差值问题

问题原因
  • 类型转换错误:你调用.ToString("HH:mm:ss")得到的是仅包含时间的字符串,如果变量前加了[datetime]强制类型约束,会自动将字符串转回DateTime对象,输出时默认补全日期信息,就会出现你看到的带完整日期的结果。
  • Unix时间戳转换基准错误:Unix时间戳是从UTC时间1970-01-01 00:00:00开始计算的秒数,你直接用Get-Date 01.01.1970得到的是本地时区的1970年1月1日零点,转换结果会有时区偏差。
修正实现
# 定义Unix时间戳UTC基准时间
$unixEpoch = [DateTime]::new(1970,1,1,0,0,0,[DateTimeKind]::Utc)

# 转换时间戳为本地DateTime对象
$dtMin = $unixEpoch.AddSeconds($min.Minimum).ToLocalTime()
$dtMax = $unixEpoch.AddSeconds($max.Maximum).ToLocalTime()

# 提取仅时间的字符串(不要加[datetime]类型约束)
$oUNIXDatemin_1 = $dtMin.ToString("HH:mm:ss")
$oUNIXDatemax_1 = $dtMax.ToString("HH:mm:ss")

# 计算时间差并格式化为HH:mm:ss
$timeDifference = $dtMax - $dtMin
$diffResult = $timeDifference.ToString("hh\:mm\:ss")

用你提供的两个时间戳计算,最终差值输出为13:29:18。

内容的提问来源于stack exchange,提问作者Empty Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:15:06