如何在Bash脚本中自动更新每日PST凌晨00:01对应的毫秒时间戳
Bash 实现PST凌晨00:01时间戳赋值方案
注意事项
你给出的示例中为10位秒级时间戳,若需要13位毫秒级时间戳,将下方命令中结尾的+%s替换为+%s%3N即可。变量每次执行脚本时自动读取当日日期生成对应时间戳,天然支持每日滚动更新,无需额外修改配置。
GNU Date 版本(适用于绝大多数Linux发行版)
严格使用PST(固定UTC-8偏移,不适用夏令时)
startTs=$(TZ="Etc/GMT+8" date -d "$(date +%Y-%m-%d) 00:01" +%s)
适配太平洋时区夏令时(自动切换PST/PDT,适用于美国/加拿大太平洋沿岸地区)
startTs=$(TZ="America/Los_Angeles" date -d "$(TZ="America/Los_Angeles" date +%Y-%m-%d) 00:01" +%s)
BSD Date 版本(适用于MacOS、FreeBSD等系统)
严格使用PST(固定UTC-8偏移,不适用夏令时)
startTs=$(TZ="Etc/GMT+8" date -j -f "%Y-%m-%d %H:%M" "$(TZ="Etc/GMT+8" date +%Y-%m-%d) 00:01" +%s)
适配太平洋时区夏令时(自动切换PST/PDT)
startTs=$(TZ="America/Los_Angeles" date -j -f "%Y-%m-%d %H:%M" "$(TZ="America/Los_Angeles" date +%Y-%m-%d) 00:01" +%s)
验证方法
你可以执行对应命令将生成的时间戳转回可读时间校验正确性:
- GNU Date 系统:
date -d @$startTs - BSD Date 系统:
date -r $startTs
内容的提问来源于stack exchange,提问作者raj
相关产品推荐
相关产品推荐

