请帮我将datetime对象(例如:2011-12-17 11:31:00-05:00
)(包括时区)更改为Unix时间戳(如Python中的函数time.time())。
答案 0 :(得分:14)
另一种方式是:
import calendar
from datetime import datetime
d = datetime.utcnow()
timestamp=calendar.timegm(d.utctimetuple())
时间戳是unix时间戳,它显示与datetime对象d相同的日期。
答案 1 :(得分:12)
import time
import datetime
dtime = datetime.datetime.now()
ans_time = time.mktime(dtime.timetuple())
答案 2 :(得分:6)
答案不完整(不涉及时区),但希望有用:
time.mktime(datetime_object.timetuple())
**根据以下评论编辑**
在我的程序中,用户输入datetime,选择时区。 ...我创建了一个时区列表(使用pytz.all_timezones)并允许用户从该列表中选择一个时区。
Pytz模块提供必要的转换。例如。如果dt
是您的datetime
对象,并且用户选择了“美国/东方”
import pytz, calendar
tz = pytz.timezone('US/Eastern')
utc_dt = tz.localize(dt, is_dst=True).astimezone(pytz.utc)
print calendar.timegm(utc_dt.timetuple())
参数is_dst=True
用于解决夏令时结束时1小时间隔内的模糊时间(请参阅此处http://pytz.sourceforge.net/#problems-with-localtime)。