如何将日期时间(在特定时区)转换为纪元秒

Posted

技术标签:

【中文标题】如何将日期时间(在特定时区)转换为纪元秒【英文标题】:How to convert a date time (in a specific timezone) to epoch seconds 【发布时间】:2011-08-11 06:28:59 【问题描述】:

我在特定时区有一个日期时间对象,即“亚洲/东京”。 我正在使用$dt = DateTime->now(time_zone => 'Asia/Tokyo'); 获取此日期时间 其输出格式为YYYY-MM-DD'P'HH:mm:ssP 是分隔符)

请帮助使用 perl 脚本将其转换为日期时间到纪元秒数。

【问题讨论】:

$dt->epoch 不适合你吗? 【参考方案1】:
DateTime->now(time_zone => 'Asia/Tokyo')->epoch

当然,如果使用now,无论指定哪个时区,都会得到相同的结果,并且与time的输出结果相同。


这些都指同一时间(现在):

>perl -MDateTime -E"say time"
1313046840

>perl -MDateTime -E"say DateTime->now(time_zone => 'Asia/Tokyo')->epoch"
1313046840

>perl -MDateTime -E"say DateTime->now(time_zone => 'America/New_York')->epoch"
1313046840

这些是指不同的时间:

>perl -MDateTime::Format::Strptime -E"say DateTime::Format::Strptime->new(pattern => '%F %T', time_zone => 'Asia/Tokyo')->parse_datetime('2011-08-11 13:00:00')->epoch"
1313035200

>perl -MDateTime::Format::Strptime -E"say DateTime::Format::Strptime->new(pattern => '%F %T', time_zone => 'America/New_York')->parse_datetime('2011-08-11 13:00:00')->epoch"
1313082000

【讨论】:

以上是关于如何将日期时间(在特定时区)转换为纪元秒的主要内容,如果未能解决你的问题,请参考以下文章

将纪元时间戳列转换为带有时区的日期时间

在 Google 表格中将 Unix 纪元时间转换为日期

是否有 perl 5.005 核心模块可以将纪元秒数转换为日期时间字符串?

带有时区和夏令时的纪元的日期和时间(以秒为单位)

Python - 在特定时区设置日期时间(没有 UTC 转换)

如何使用 MQ 的 esql 将日期的特定时区转换为 GMT 时区?