Python datetime库详解

datetime主要用来处理时间日期,使用前先导入datetime库。下面是几个常用功能:

1、获取当前时间:

>>> print datetime.datetime.now()
2018-06-18 16:39:15.712000
>>> print type(datetime.datetime.now())
<type 'datetime.datetime'>
返回的datetime时间格式。

2、获取当前日期

>>> print datetime.datetime.now().date()
2018-06-18
>>> print type(datetime.datetime.now().date())
<type 'datetime.date'>

3、获取当前时间tuple

>>> datetime.datetime.now().timetuple()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=18, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
>>> datetime.datetime.now().timetuple().tm_mday
18

4、时间移动(几天、几小时前后...)

使用datetime.timedelta这个方法来前后移动时间,可用的参数有weeks,days,hours,minutes,seconds,microseconds等。

>>> print datetime.datetime.now() + datetime.timedelta(days=1)
2018-06-19 16:49:48.574000
>>> print datetime.datetime.now() + datetime.timedelta(hours=1)
2018-06-18 17:49:57.122000
>>> print datetime.datetime.now() + datetime.timedelta(minutes=-30)
2018-06-18 16:20:08.619000

例如:求上个月最后一天(从这个月第一天让时间向前减一天)

>>> print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)
2018-05-31

5、获取两个时间的时间差(now是本地时间,可以认为是你电脑现在的时间;utcnow是世界时间<时区不同,所以这两个时间也是有所不同>)

>>> (datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0



6、时间转化

datetime转str格式:
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2018-06-18 16:58:46'
str格式转datetime格式:
>>> print datetime.datetime.strptime("2018-06-18 16:58:46","%Y-%m-%d %H:%M:%S")
2018-06-18 16:58:46
>>> print type(datetime.datetime.strptime("2018-06-18 16:58:46","%Y-%m-%d %H:%M:%S"))
<type 'datetime.datetime'>

Python 中datetime库API链接:https://docs.python.org/2/library/datetime.html


补充其他常用函数:

①:date.isocalendar()        #返回结果是三元组(年号,第几周,第几天)

print('isocalendar():', datetime.datetime.now().isocalendar())
输出:isocalendar(): (2018, 25, 1)

    ②:date.strftime("%j")        #计算输入的日期是一年中的第几天

input_date_str=input('请输入一个日期: ')
input_date=datetime.datetime.strptime(input_date_str,'%Y-%m-%d')
days=int(input_date.strftime("%j"))
print(input_date_str+'是一年中的第 '+str(days)+' 天')
输出: 请输入一个日期: 2018-12-31
      2018-12-31是一年中的第 365 天

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值