最近用Python来做时间的比较,整理一下。
场景:数据库保存的是datetime.datetime.now()的str类型的数据,需要把数据库保存的时间跟现在的时间进行比较。
用到的库:datetime.datetime.now() datetime.datetime.strptime() datetime.timedelta()
数据模拟:
1
2
3
4
5
6
7
8
9
10
11
|
>>>
from
datetime
import
datetime, timedelta
>>> nowtime
=
datetime.now()
# 现在的时间
>>> nowtime
datetime.datetime(
2017
,
6
,
20
,
20
,
11
,
12
,
926763
)
>>>
>>> lasthour
=
datetime(
2017
,
6
,
20
,
19
,
11
,
12
,
926763
)
# 1个小时前的时间
>>> lasthour
datetime.datetime(
2017
,
6
,
20
,
19
,
11
,
12
,
926763
)
>>> lasthour_str
=
str
(lasthour)
# 模拟从数据库取出来的str类型时间数据
>>> lasthour_str
'2017-06-20 19:11:12.926763'
|
str时间数据转换:
1
2
3
4
|
# 将str类型时间数据转换为datetime.datetime类型时间数据
>>> lasthour_new
=
datetime.strptime(lasthour_str,
'%Y-%m-%d %H:%M:%S.%f'
)
>>> lasthour_new
datetime.datetime(
2017
,
6
,
20
,
19
,
11
,
12
,
926763
)
|
时间比较:
1
2
3
4
5
6
7
8
9
10
11
12
|
# lasthour_new和nowtime的时间差是否大于1个小时
>>> nowtime
-
lasthour_new > timedelta(hours
=
1
)
False
# lasthour_new和nowtime的时间差是否等于1个小时
>>> nowtime
-
lasthour_new
=
=
timedelta(hours
=
1
)
True
# lasthour_new和nowtime的时间差是否大于60分钟
>>> nowtime
-
lasthour_new > timedelta(minutes
=
60
)
False
# lasthour_new和nowtime的时间差是否等于60分钟
>>> nowtime
-
lasthour_new
=
=
timedelta(minutes
=
60
)
True
|
本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1940304,如需转载请自行联系原作者