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

在Oracle中实现ISO 8601时间戳差值计算及转epoch时间的方法

ISO 8601格式时间转Unix Epoch秒实现方案

你先转Epoch时间再做减法的思路是完全可行的,不同常用开发环境的转换实现如下:

1. Python 3.7+ 实现

from datetime import datetime

# 转换单个ISO时间
def iso_to_epoch(iso_str):
    return int(datetime.fromisoformat(iso_str.replace("Z", "+00:00")).timestamp())

time1 = "2021-08-24T12:59:05Z"
time2 = "2021-08-24T12:59:35Z"

# 计算差值
diff = iso_to_epoch(time2) - iso_to_epoch(time1)
print(diff) # 输出 30,和实际差值一致

2. JavaScript 实现

function isoToEpoch(isoStr) {
    // getTime返回毫秒级时间戳,除以1000取整得到秒级Epoch
    return Math.floor(new Date(isoStr).getTime() / 1000);
}

const time1 = "2021-08-24T12:59:05Z";
const time2 = "2021-08-24T12:59:35Z";
const diff = isoToEpoch(time2) - isoToEpoch(time1);
console.log(diff); // 输出30

3. Linux Shell 实现

使用date命令直接转换:

# 转换单条时间
date -d "2021-08-24T12:59:05Z" +%s
# 输出 1629809945

# 直接计算两个时间的差值
time1=$(date -d "2021-08-24T12:59:05Z" +%s)
time2=$(date -d "2021-08-24T12:59:35Z" +%s)
diff=$((time2 - time1))
echo $diff # 输出30

如果是macOS环境,替换date命令参数为:date -jf "%Y-%m-%dT%H:%M:%SZ" "2021-08-24T12:59:05Z" +%s即可。

注意:ISO 8601时间末尾的Z代表UTC+0时区,上述所有转换都默认按UTC时区处理,不会引入时区偏移误差,计算得到的差值完全准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:42:00