在Python中将日期时间转换为Unix时间戳

22 投票
3 回答
52821 浏览
提问于 2025-04-17 08:32

请帮我把一个日期时间对象(比如说:2011-12-17 11:31:00-05:00,这个还包括时区)转换成Unix时间戳(就像Python里的time.time()函数那样)。

3 个回答

6

这个回答不太完整(没有处理时区的问题),但希望对你有帮助:

time.mktime(datetime_object.timetuple())

** 根据以下评论进行了编辑 **

在我的程序中,用户输入日期时间,并选择时区。... 我创建了一个时区列表(使用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是用来解决在夏令时结束时出现的模糊时间问题(在这里可以查看 http://pytz.sourceforge.net/#problems-with-localtime)。

13
import time

import datetime

dtime = datetime.datetime.now()

ans_time = time.mktime(dtime.timetuple())

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

14

另一种方法是:

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

时间戳是一个Unix时间戳,它表示与日期时间对象d相同的日期。

撰写回答