将date时间更改为Python中的Unix时间戳

请帮助我将datetime对象(例如: 2011-12-17 11:31:00-05:00 )(包括时区)更改为Unix时间戳(如Python中的函数time.time())。

另一种方法是:

 import calendar from datetime import datetime d = datetime.utcnow() timestamp=calendar.timegm(d.utctimetuple()) 

时间戳是与日期时间对象d显示相同的日期的Unix时间戳。

 import time import datetime dtime = datetime.datetime.now() ans_time = time.mktime(dtime.timetuple()) 

不完整的答案(不处理时区),但希望有用:

 time.mktime(datetime_object.timetuple()) 

**根据以下评论编辑**

在我的程序中,用户输入datetime,选择时区。 …我创建了一个时区列表(使用pytz.all_timezones),并允许用户从该列表中选择一个时区。

Pytz模块提供必要的转换。 例如,如果dt是您的datetime对象,并且用户选择了“US / Eastern”

 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 )。