gpt4 book ai didi

perl - 在 perl 中将系统日期转换为 iso 8601 格式

转载 作者:行者123 更新时间:2023-12-04 04:51:37 27 4
gpt4 key购买 nike

我希望将系统日期转换为 ISO 8601 格式。
代码:

my $now = time();
my $tz = strftime("%z", localtime($now));
$tz =~ s/(\d{2})(\d{2})/$1:$2/;
print "Time zone *******-> \"$tz\"\n";
# ISO8601
my $currentDate = strftime("%Y-%m-%dT%H:%M:%S", localtime($now)) . $tz;
print "Current date *******-> \"$currentDate\"\n";

当前输出为:
Time zone *******-> "-04:00"
Current date *******-> "2014-06-03T03:46:07-04:00"

我希望当前日期的格式为“2014-07-02T10:48:07.124Z”,以便我可以计算两者之间的差异。

最佳答案

Perl 的 DateTime包 ( on CPAN ) 可以很容易地为您生成 ISO8601 日期,但有一个警告。
DateTime 返回的字符串将采用 UTC,但没有时区说明符。这应该没问题,因为根据 ISO8601 规范,如果未指定时区,则应假定为 UTC。但是,并非所有解析器都完全遵守规范。为了使我的日期更可靠,我附加了一个 Z到我从 DateTime 得到的字符串的末尾,所以这是我推荐的代码:

use DateTime;
my $now = DateTime->now()->iso8601().'Z';

关于perl - 在 perl 中将系统日期转换为 iso 8601 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com