以毫秒为单位将python datetime转换为时间戳
如何将格式为以毫秒为单位将python datetime转换为时间戳,python,datetime,unix-timestamp,Python,Datetime,Unix Timestamp,如何将格式为20.12.2016 09:38:42,76的人类可读时间转换为以毫秒为单位的Unix时间戳?我发现了很多类似的问题,但没有找到这个特定的问题/答案。在Python 3中,这可以通过两个步骤完成: 将时间字符串转换为datetime对象 将datetime对象的时间戳乘以1000,将其转换为毫秒 例如: from datetime import datetime dt_obj = datetime.strptime('20.12.2016 09:38:42,76',
20.12.2016 09:38:42,76
的人类可读时间转换为以毫秒为单位的Unix时间戳?我发现了很多类似的问题,但没有找到这个特定的问题/答案。在Python 3中,这可以通过两个步骤完成:
datetime
对象datetime
对象的时间戳乘以1000,将其转换为毫秒from datetime import datetime
dt_obj = datetime.strptime('20.12.2016 09:38:42,76',
'%d.%m.%Y %H:%M:%S,%f')
millisec = dt_obj.timestamp() * 1000
print(millisec)
输出:
1482223122760.0
1482206922000
2016-12-20 09:38:42
1482248322760
2016-12-20 09:38:42.760000
strtime
接受时间字符串和格式字符串作为输入。timestring(第一个参数)指定实际要转换为datetime
对象的内容。格式字符串(第二个参数)指定所传递字符串的实际格式
以下是来自的格式说明符的说明:
-以零填充十进制数表示的月份日期%d
-以零填充十进制数表示的月份%m
-以世纪为十进制数的年份%Y
-小时(24小时时钟)作为零填充十进制数%H
-分钟作为零填充十进制数%M
-以零填充的十进制数表示的秒数%S
-十进制数为微秒,左侧填充零%f
from datetime import datetime
d = datetime.strptime("20.12.2016 09:38:42,76", "%d.%m.%Y %H:%M:%S,%f").strftime('%s')
d_in_ms = int(d)*1000
print(d_in_ms)
print(datetime.fromtimestamp(float(d)))
输出:
1482223122760.0
1482206922000
2016-12-20 09:38:42
1482248322760
2016-12-20 09:38:42.760000
对于Python2.7-将MYGz的答案修改为不删除毫秒:
from datetime import datetime
d = datetime.strptime("20.12.2016 09:38:42,76", "%d.%m.%Y %H:%M:%S,%f").strftime('%s.%f')
d_in_ms = int(float(d)*1000)
print(d_in_ms)
print(datetime.fromtimestamp(float(d)))
输出:
1482223122760.0
1482206922000
2016-12-20 09:38:42
1482248322760
2016-12-20 09:38:42.760000
对于那些搜索答案而不进行解析和丢失毫秒的人, 给定的
dt_obj
是一个日期时间:
仅蟒蛇3,优雅
int(dt_obj.timestamp() * 1000)
python2和python3兼容:
import time
int(time.mktime(dt_obj.utctimetuple()) * 1000 + dt_obj.microsecond / 1000)
您需要为
datetime.datetime.strtime
提供适当的格式字符串。看,嘿,谢谢。不幸的是,我得到了错误“AttributeError:'datetime.datetime'对象没有属性'timestamp'。可能是因为我使用的是Python 2.7?是的。使用MYGz对Python 2.7的回答嘿,谢谢!我复制并粘贴了你的代码,得到了一个“ValueError:无效的格式字符串”。@Tom Python version?它在Python2.7.6上为我工作,我使用的是Python2.7.12。这去掉了76,尽管如此,它并没有解决问题。感谢Python2.7的回答