Perl 如何检索amazon ses请求的utc时间?
我对amazon ses的请求报告GMT过期。有些人告诉我在向amazon发出的请求中使用UTC日期格式,并使用sincronized time 代码是用perl编写的,行是:Perl 如何检索amazon ses请求的utc时间?,perl,amazon,utc,Perl,Amazon,Utc,我对amazon ses的请求报告GMT过期。有些人告诉我在向amazon发出的请求中使用UTC日期格式,并使用sincronized time 代码是用perl编写的,行是: $params{'Timestamp'} = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.000Z",sub {($_[5]+1900,$_[4]+1,$_[3],$_[2],$_[1],$_[0])}->(gmtime(time))); 问题是。。。我想要utc格式的,但我不知
$params{'Timestamp'} = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.000Z",sub {($_[5]+1900,$_[4]+1,$_[3],$_[2],$_[1],$_[0])}->(gmtime(time)));
问题是。。。我想要utc格式的,但我不知道perl language=s何时在代码中看到
+1900
,因为通常不需要手动进行这种低级的日期时间计算。相反,使用库可以为您完成所有计算和格式设置:
use DateTime;
use Time::HiRes 'time';
my $dt = DateTime->from_epoch(epoch => time, time_zone => 'UTC');
my $timestamp_string = $dt->strftime('%FT%T.%3NZ');
生产:2011-02-02T18:37:03.145Z
另外,如果您在将服务器与Amazon同步时遇到困难,那么您的时钟可能已经漂移。您应该安装一个类似ntpd的服务来保持时钟同步-看看您是否有困难。GMT和UTC最多相差0.9秒。出于所有意图和目的,你可以认为它们是一样的。“GMT过期”、“UTC日期格式”和“同步时间”是什么意思[root@localhostamazon]#./ses-get-stats.pl-k aws凭证-q请求时间戳:Wed,02 Feb 2011 16:39:48 GMT过期。它必须在服务器时间的300秒内。信息确实不足。$params{'Timestamp'}需要什么格式?如果有的话,你用什么模块来对付亚马逊?如果你“一点都不知道”为什么要用Perl编码?这并没有解决问题。请求仍然是这样结束的->请求时间戳:Thu,03 Feb 2011 02:04:57 GMT过期。它必须在服务器时间的300秒内。@Fabio:这还不足以帮助您--请求时间戳是实际的当前时间吗?您是否已同步服务器时钟?