Python技巧之六---时间比较 增减一天 一小时

    场景:数据库保存的是datetime.datetime.now()的str类型的数据,需要把数据库保存的时间跟现在的时间进行比较。

    用到的库:datetime.datetime.now()    datetime.datetime.strptime()    datetime.timedelta()

数据模拟:

>>> 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时间数据转换:

# 将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)
 

时间比较:

# 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

 

当前日期时间

import datetime

print datetime.datetime.now()

# 2018-05-08 16:53:30.101000

格式化时间

import datetime

print datetime.datetime.now().strftime("%Y-%m-%d %H:%M")

# 2018-05-08 16:54

多加一天

 
import datetime

print (datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")

# 2018-05-09 16:56:07

减一天

 
import datetime

print (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")

# 2018-05-07 16:56:59

可以把days改为hours minutes,就可以提前XX小时/分钟了。

timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[,
hours[, weeks]]]]]]])

减去一年

import datetime

from dateutil.relativedelta import relativedelta

d = datetime.datetime.strptime('20180131', '%Y%m%d')

print(d) // 2018-01-31 00:00:00

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值