Python 如何将当前日期转换为历元时间戳?

Python 如何将当前日期转换为历元时间戳?,python,Python,如何将当前日期转换为历元时间戳 设置当前日期的格式: 29.08.2011 11:05:02 用于解析时间,并调用它以获取Unix时间戳。假设您使用的是24小时时间格式: import time; t = time.mktime(time.strptime("29.08.2011 11:05:02", "%d.%m.%Y %H:%M:%S")); 那应该可以 import time date_time = '29.08.2011 11:05:02' pattern = '%d.%m.%Y

如何将当前日期转换为历元时间戳

设置当前日期的格式:

29.08.2011 11:05:02

用于解析时间,并调用它以获取Unix时间戳。

假设您使用的是24小时时间格式:

import time;
t = time.mktime(time.strptime("29.08.2011 11:05:02", "%d.%m.%Y %H:%M:%S"));
那应该可以

import time

date_time = '29.08.2011 11:05:02'
pattern = '%d.%m.%Y %H:%M:%S'
epoch = int(time.mktime(time.strptime(date_time, pattern)))
print epoch

如果未正确设置“TZ”,您的代码将表现出奇怪的行为,例如“UTC”或“Asia/Kolkata”

所以,你需要做下面的事情

>>> import time, os
>>> d='2014-12-11 00:00:00'
>>> p='%Y-%m-%d %H:%M:%S'
>>> epoch = int(time.mktime(time.strptime(d,p)))
>>> epoch
1418236200
>>> os.environ['TZ']='UTC'
>>> epoch = int(time.mktime(time.strptime(d,p)))
>>> epoch
1418256000

如果需要UTC,请尝试一些
gm
功能:

import time
import calendar

date_time = '29.08.2011 11:05:02'
pattern = '%d.%m.%Y %H:%M:%S'
utc_epoch = calendar.timegm(time.strptime(date_time, pattern))
print utc_epoch
我认为这个答案需要更新,这样解决方案会更好

from datetime import datetime

datetime.strptime("29.08.2011 11:05:02", "%d.%m.%Y %H:%M:%S").strftime("%s")
或者,您可以使用datetime对象并使用%s格式化时间,将其转换为历元时间

from time import time
>>> int(time())
1542449530


>>> time()
1542449527.6991141
>>> int(time())
1542449530
>>> str(time()).replace(".","")
'154244967282'
但它不应该回来吗

'15424495276991141'

速记将python日期/日期时间转换为纪元(无微秒)


由于使用了mktime,这是否意味着您应该将返回的历元调整为UTC?python3是否也一样?输入错误,您的代码片段应该是:os.environ['TZ']='UTC'。请注意,TZ键上带有“这应该是公认的答案”。时区调整非常关键。time.time()以浮点形式返回历元(posix time)后的当前秒数,无需调整datetime.now()。如果您确实想使用datetime.now(),它有一个
.timestamp
方法返回相同的内容。您的意思是这样吗?我认为
int(time())
正是这个问题的答案。我不敢相信18个月后没有更新投票。
name错误:未定义名称“current\u datetime”
current\u datetime是您要转换的输入日期注意:
%s
在windows中不受支持。
'15424495276991141'
int(current_date.strftime("%s")) # 2020-01-14  ---> 1578956400
int(current_datetime.strftime("%s")) # 2020-01-14 16:59:30.251176 -----> 1579017570