目录
datetime在python中是用来处理时间的一个模块
datetime模块下又包含了几个类
类名 | 功能 |
---|---|
date | 日期对象,常用的属性有year, month, day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
timedelta | 时间间隔,即两个时间点之间的长度 |
datetime_CAPI | 日期时间对象C语言接口 |
tzinfo | 时区信息对象 |
下面介绍datetime中比较常用的一些函数
获取当前时间
from datetime import datetime
>>> print ( datetime.now() )
2018-10-08 08:08:13.296957
>>> print ( type(datetime.now()) )
<class 'datetime.datetime'>
获取当前日期
from datetime import datetime
>>> print ( datetime.now().date() )
2018-10-08
>>> print ( type(datetime.now().date() ) )
<class 'datetime.date'>
获取当前时间的tuple元组
from datetime import datetime
>>> print( datetime.now().timetuple() )
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=8, tm_hour=8, tm_min=17, tm_sec=15, tm_wday=0, tm_yday=281, tm_isdst=-1)
>>> print( datetime.now().timetuple().tm_year)
2018
时间移动
使用datetime.timedelta这个方法来前后移动时间,可以用的参数有weeks,days,hours,minutes,seconds,microseconds。使用 days=1代表后一天,days=-1代表前一天,其他参数也一样
from datetime import datetime
from datetime import timedelta
>>>print( datetime.now() )
2018-10-08 08:25:49.546137
>>>print( datetime.now()+ timedelta(days=1))
2018-10-09 08:25:49.547196
获取两个时间的时间差
from datetime import datetime
>>>nowtime=datetime.now()
>>>utctime=datetime.utcnow()
>>>print( nowtime-utctime )
8:00:00
>>>print((nowtime-utctime).total_seconds()) ##以秒计算
28800.0
时间格式转换
datetime转str格式
from datetime import datetime
>>>print( datetime.now() )
2018-10-08 08:33:37.369422
>>>print( datetime.now().strftime("%Y-%m-%d %H-%M:%S") )
2018-10-08 08-33:37
>>>print( datetime.now().strftime("%Y-%m-%d") )
2018-10-08
>>>print( datetime.now().strftime("%H-%M:%S") )
08-33:37
str格式转datetime
from datetime import datetime
>>>print( datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S"))
2018-10-08 09:00:00
>>>print( type(datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S")) )
<class 'datetime.datetime'>
datetime转timestamp
from datetime import datetime
import time
>>>now=datetime.now()
>>>print(now)
2018-10-08 08:51:42.215168
>>>print( time.mktime(now.timetuple()) )
1538959902.0 ##现在距离1970-01-01 00:00:00的秒数
timestamp转datetime
from datetime import datetime
>>>print( datetime.fromtimestamp(1538959902.0))
2018-10-08 08:51:42