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

Python datetime库详解_第1张图片

Python datetime库详解_第2张图片

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"))
'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 天

你可能感兴趣的:(Python)