我有这样的价值:
var="11-feb-15:04:02:21"
我需要转换为纪元时间:
我试过了:
var.strftime('%s')
我收到此错误:
AttributeError: 'str' object has no attribute 'strftime'
有什么想法吗? 我
答案 0 :(得分:3)
我希望您将通过此示例查找相应的文档。
>>> s = "11-feb-15:04:02:21"
>>> timestruct = time.strptime(s, "%d-%b-%y:%H:%M:%S")
>>> time.mktime(timestruct)
1423623741.0
格式说明符在此处定义:https://docs.python.org/2/library/time.html#time.strftime
文档也很清楚,当您想要从 struct_time在本地时间转换为秒以来时,您需要使用mktime()
答案 1 :(得分:1)
将表示当地时间的时间字符串转换为自Epoch"以来的"秒:
#!/usr/bin/env python
import time
from datetime import datetime
import pytz # $ pip install pytz
from tzlocal import get_localzone # $ pip install tzlocal
tt = time.strptime("11-feb-15:04:02:21", "%d-%b-%y:%H:%M:%S")
naive_dt = datetime(*tt[:5]+(min(tt[5], 59),))
dt = get_localzone().localize(naive_dt, is_dst=None)
timestamp = (dt - datetime(1970, 1, 1, tzinfo=pytz.utc)).total_seconds()
print(timestamp) # -> 1423623741.0
如果输入时间不明确或不存在,此解决方案会引发异常,例如,在DST转换期间 - 将is_dst
参数设置为True / False以消除时间歧义和/或调用tz.normalize()
调整不存在的当地时间的方法。
要获得正确的utc偏移量,使用tz数据库(get_localzone()
将本地时区作为pytz
时区对象返回。)
time.strptime()
用于支持闰秒,例如,"1-jul-15:1:59:60"
转换为datetime(2015, 7, 1, 1, 59, 59)
- 注意:秒被截断为59
。