我有一个'2009/05/13 19:19:30 -0400'形式的日期字符串.对于尾随时区规范,似乎以前版本的Python可能支持strptime中的%z格式标记,但2.6.x似乎已经删除了它.
将此字符串解析为日期时间对象的正确方法是什么?
我有一个如下所示的数据框:
from to datetime other
-------------------------------------------------
11 1 2016-11-06 22:00:00 -
11 1 2016-11-06 20:00:00 -
11 1 2016-11-06 15:45:00 -
11 12 2016-11-06 15:00:00 -
11 1 2016-11-06 12:00:00 -
11 18 2016-11-05 10:00:00 -
11 12 2016-11-05 10:00:00 -
12 1 2016-10-05 10:00:59 -
12 3 2016-09-06 10:00:34 -
Run Code Online (Sandbox Code Playgroud)
我想分组"从"然后"到"列,然后按降序排序"日期时间",然后最终想要计算当前时间和下一次之间按对象分组的时间差.例如,在这种情况下,我想拥有如下数据框:
from to timediff in minutes others
11 1 120
11 1 255
11 1 225
11 1 0 (preferrably subtract this date from the epoch)
11 12 300 …Run Code Online (Sandbox Code Playgroud) 我正在使用此代码:
def calcDateDifferenceInMinutes(end_date,start_date):
fmt = '%Y-%m-%d %H:%M:%S'
start_date_dt = datetime.strptime(start_date, fmt)
end_date_dt = datetime.strptime(end_date, fmt)
# convert to unix timestamp
start_date_ts = time.mktime(start_date_dt.timetuple())
end_date_ts = time.mktime(end_date_dt.timetuple())
# they are now in seconds, subtract and then divide by 60 to get minutes.
return (int(end_date_ts-start_date_ts) / 60)
Run Code Online (Sandbox Code Playgroud)
来自这个问题:stackoverflow问题
但我收到这条消息:
AttributeError:'str'对象没有属性'datetime'
我已经回顾了类似的问题但除了做以下事情之外没有看到任何其他选择:
start_date_dt = datetime.datetime.strptime(start_date, fmt)
Run Code Online (Sandbox Code Playgroud)
这是完整的痕迹:
> Traceback (most recent call last): File "tabbed_all_cols.py", line
> 156, in <module>
> trip_calculated_duration = calcDateDifferenceInMinutes (end_datetime,start_datetime) File "tabbed_all_cols.py", line 41, in
> calcDateDifferenceInMinutes …Run Code Online (Sandbox Code Playgroud)