如何使用`boto` API 获取AWS S3键的正确GMT `last_modified`?

1 投票
3 回答
2410 浏览
提问于 2025-04-18 06:52

在使用get_key方法获取最后修改时间的时候,发现时间有3小时的偏差。

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

我得到的是:'2014年5月17日星期六 18:42:02 GMT',而文件实际上是在21:42:02更新的,下面的图片可以看到:

文件在se控制台中的显示

有没有办法通过s3获取正确的GMT时间?

谢谢

3 个回答

1

这个问题的解决方法很简单——时间戳是正确的。

注意网页上时间戳后面的 +03:00:00。如果你把这个时间加到你之前看到的时间上,你就会得到和询问 last_modified 一样的时间戳。

1

看看你截图上的时区。截图显示文件是在 21:42:02 GMT+300 修改的,这个时间相当于 18:42:02 GMT。所以其实这两个时间是一样的,你只需要做一些时区转换的操作就可以了。

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的文档,

撰写回答