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

发布于 2024-11-29 03:56:13 字数 210 浏览 4 评论 0 原文

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

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

I have a datetime object in a specific timezone namely 'Asia/Tokyo'.
I am getting this datetime using $dt = DateTime->now(time_zone => 'Asia/Tokyo');
The output of this is in the format YYYY-MM-DD'P'HH:mm:ss (P is delimiter)

Please help with perl script to convert this to datetime to epoch seconds.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无人问我粥可暖 2024-12-06 03:56:13
DateTime->now(time_zone => 'Asia/Tokyo')->epoch

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


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

>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
DateTime->now(time_zone => 'Asia/Tokyo')->epoch

Of course, you will get the same result no matter which time zone you specify if you use now, and it's going to be the same as the output of time.


These all refer to the same time (now):

>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

These refer to different times:

>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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文