如何将带有时区的日期转换为时间戳?

时间:2015-12-03 11:51:59

标签: python python-2.7 timestamp unix-timestamp

如何转换看起来像

的日期字符串
2015-12-02 21:31:49 GMT

到Python 2中的时间戳?

2 个答案:

答案 0 :(得分:2)

通常会使用datetime.strptime()dateutil.parser.parse(),但两种方式都不能用作时区的缩写。如果给出缩写,他们实际上不会存储时区信息(请参阅Python strptime() and timezones?Parsing date/time string with timezone abbreviated name in Python?)。

原因是缩写不是唯一的(EST在北美和澳大利亚使用),因此使用时区缩写解析日期字符串是不明确的。

这意味着您无法可靠地进行转换。

此外datetime.strptime()可能无法识别某些时区缩写,例如EST。如果它是a local timezone,它可能会识别它们。

但是,如果您偶然只有UTC / GMT,那么就这样做

from datetime import datetime
date_string = '2015-12-02 21:31:49 GMT'
date = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S %Z')

答案 1 :(得分:-1)

试试这个:

import time
import datetime

ts = time.time()
timestamp = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')