如何解决考虑 bash 中的 DST 时区,使用过去的日期时间进行计算
我正在尝试使用巴西夏令时结束的最后一个日期时间 (2019-02-16
) 来模拟计算。
为了测试起见,我在 23:59:00
上加了一分钟,并检查计算是否将一小时减去,因此在同一日期产生 23:00:00
。
我在 Mac os Catalina 上运行 bash:
$ bash --version
GNU bash,versão 5.1.8(1)-release (x86_64-apple-darwin19.6.0)
$ date --debug -d "$(date '+2019-02-16 23:59:00-02') + 1min"
date: parsed date part: (Y-M-D) 2019-02-16
date: parsed time part: 23:59:00 UTC-02
date: parsed relative part: +1 minutes
date: input timezone: parsed date/time string (-02) ### Correct,but fixed timezone on timestamp
date: using specified time as starting value: '23:59:00'
date: starting date/time: '(Y-M-D) 2019-02-16 23:59:00 TZ=-02'
date: '(Y-M-D) 2019-02-16 23:59:00 TZ=-02' = 1550368740 epoch-seconds
date: after time adjustment (+0 hours,+1 minutes,+0 seconds,+0 ns),date: new time = 1550368800 epoch-seconds
date: warning: daylight saving time changed after time adjustment ### Nice!
date: timezone: system default
date: final: 1550368800.000000000 (epoch-seconds)
date: final: (Y-M-D) 2019-02-17 02:00:00 (UTC)
date: final: (Y-M-D) 2019-02-16 23:00:00 (UTC-03)
Sáb Fev 16 23:00:00 -03 2019 ### Correct output
但是,我想在时间戳上指定一些值,它不是当时的硬编码时区值。
我尝试将 %Z
放在内部 date
命令上,但时区信息错误:(-03
而不是 DST -02
):
$ date --debug -d "$(date '+2019-02-16 23:59:00-%Z') + 1min"
date: parsed date part: (Y-M-D) 2019-02-16
date: parsed time part: 23:59:00 UTC-03
date: parsed relative part: +1 minutes
date: input timezone: parsed date/time string (-03)
date: using specified time as starting value: '23:59:00'
date: starting date/time: '(Y-M-D) 2019-02-16 23:59:00 TZ=-03'
date: '(Y-M-D) 2019-02-16 23:59:00 TZ=-03' = 1550372340 epoch-seconds
date: after time adjustment (+0 hours,date: new time = 1550372400 epoch-seconds
date: warning: daylight saving time changed after time adjustment ### Should be good....
date: timezone: system default
date: final: 1550372400.000000000 (epoch-seconds)
date: final: (Y-M-D) 2019-02-17 03:00:00 (UTC)
date: final: (Y-M-D) 2019-02-17 00:00:00 (UTC-03)
Dom Fev 17 00:00:00 -03 2019 ### ...Wrong
我如何指定那个日期的 DST 时区?
感谢您的关注。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。