我的日期为" 2014年5月15日,上午5:39"我正在阅读ISO 8601并写到其他地方 我的代码是
my $dcCreated = "2014-05-15T05:39:54.864Z";
my $iso8601 = DateTime::Format::ISO8601 -> new;
my $dt = $iso8601->parse_datetime( $dcCreated );
my $dayofmonth = $dt->strftime("%d");
$dayofmonth =~ s/^0//;
my $hour = $dt->strftime("%I");
$hour =~ s/^0//;
my $commentDate = $dt->strftime("%b " . $dayofmonth . ", %Y, " . $hour . ":%M %p");
返回值为" 2014年5月15日,上午9:39"
看起来它以DST GMT格式返回,这是提前四个小时。 如何更正GMT偏移量以使结果日期与原始日期匹配。
答案 0 :(得分:0)
您在GMT中的时间戳,所以代码是正确的。 " 2014-05-15T05:39:54.864Z":尾随Z意味着祖鲁时间又名。 GMT。
祖鲁时间:http://www.navy.mil/navydata/questions/zulutime.html
不幸的是,地球不会以完全恒定的速度旋转。 由于各种科学原因和测量精度的提高 地球的自转,一个新的时间尺度,称为协调世界 时间(UTC)已被采用并取代GMT一词。
海军以及民航使用的字母是" Z" (音素 "祖鲁")指的是本初子午线的时间。
http://en.wikipedia.org/wiki/ISO_8601
UTC的日期和时间:2014-05-25T16:45:49 + 00:00或 2014-05-25T16:45:49Z