2014-05-17 34 views
1

使用get_key然后获取last_modified属性时,会有3小时的偏差。如何使用`boto` API获取AWS S3 key的GMT`last_modifed`?

k = b.get_key('av-bait/modules/reporters.py') 
print k.last_modified  

我得到: '周六2014 GMT 18时42分02秒5月17日',而文件是在21时42分02秒更新,如下图显示:

File as shown in se console

任何想法如何通过s3获取gmt?

谢谢

+1

有一个时区差异,格林威治标准时间GMT +300 –

+1

如何检索GMT +300通过s3 api? –

回答

1

如果要调整三个小时字符串中,你可以使用:

>>> t='Sat, 17 May 2014 18:42:02 GMT' 
>>> from datetime import datetime 
>>> str_time= datetime.strptime(t,'%a, %d %B %Y %H:%M:%S GMT') 
>>> updated_time= str_time.replace(hour=str_time.hour+3) 
>>> print updated_time 
2014-05-17 21:42:02 

有许多如何做到这一点,看看datetime文档,

1

看看你的截图的时区。截图显示文件被修改为21:42:02 GMT+300,相当于18:42:02 GMT,所以它实际上是相同的时间戳,你只需要做一些时区魔术来转换它。

+0

如何通过s3 api检索GMT +300? –

+0

你不能。这应该是一个正常的'datetime.datetime'对象,所以我建议,例如按照[这篇文章](http://stackoverflow.com/questions/4770297/python-convert-utc-datetime-string-to-local-datetime )。 – Knut

1

解决方案非常简单 - 时间戳是正确的。

注意网页上的时间戳+03:00:00。如果你把它应用到你看到面前的时候,你会得到正是你得到的时间戳问last_modified

+0

如何通过s3 api检索GMT +300? - –

+0

@omerbach我猜你正在谈论'boto',并且提供UTC(GMT)中的'last_modified'。如果需要,您必须使用Python将其转换为另一个时区。 –

相关问题