1、datetime模块
对日期、时间、时间戳的处理
1> datetime类
类方法:没有时间对象使用类的方法构造时间对象
today() 返回本地时区当前时间的datetime对象
now(tz=None) 返回当前时间的datetime对象,时间到微秒,如果tz为None,返回和 today() 一样
utcnow() 没有时区的当前时间
fromtimestamp(timestamp, tz=None) 从一个时间戳返回一个datetime对象
datetime对象:有时间对象调用时间戳返回时间戳
timestamp() 返回一个到微秒的时间戳
时间戳:格林威治时间1970年1月1日0点到现在的秒数
import datetime print(type(datetime.datetime)) #类 执行结果: <class 'type'>
import datetime print(datetime.datetime.now()) #类的方法,返回一个当前时区时间的对象 print(datetime.datetime.today()) #中国:东八区,和没有时区的时间差8个小时 print(datetime.datetime.utcnow()) #没有时区的时间 执行结果: 2020-04-08 18:15:34.319195 2020-04-08 18:15:34.319196 2020-04-08 10:15:34.319195
import datetime d1 = datetime.datetime.now() print(d1) print(d1.timestamp()) #返回一个到微妙的时间戳 print(datetime.datetime.fromtimestamp(1586341355)) #从一个时间戳返回datetime对象 执行结果: 2020-04-08 18:22:52.348085 1586341372.348085 2020-04-08 18:22:35
2> datetime对象
构造方法datetime.datetime(2016, 12, 6, 16, 29, 43, 79043)
year、month、day、hour、minute、second、microsecond,取datetime对象的年月日时分秒及微秒
weekday() 返回星期的天,周一0,周日6
isoweekday() 返回星期的天,周一1,周日7
date() 返回日期date对象
time() 返回时间time对象
replace() 修改并返回新的时间
isocalendar() 返回一个三元组(年,周数,周的天)
import datetime d = datetime.datetime(2020,1,1,12,12,12) print(d) print(d.year,d.month) print(d.weekday()) #返回星期:0-6 print(d.isoweekday()) #返回星期:1-7 print(d.date()) #2020-01-01 print(d.time()) #12:12:12 print(d.replace(2017)) #返回全新的时间对象 print(d.isocalendar()) #返回一个三元组(年,周数,周的天) 执行结果: 2020-01-01 12:12:12 2020 1 2 3 2020-01-01 12:12:12 2017-01-01 12:12:12 (2020, 1, 3)
import datetime d = datetime.datetime(2019,12,12,12,12,12) print(d) d1 = d.replace(d.year-10,5,5) print(d1) d2 = datetime.datetime(d1.year,d1.month,d1.day) print(d2) 执行结果: 2019-12-12 12:12:12 2009-05-05 12:12:12 2009-05-05 00:00:00
2、日期格式化
类方法strptime(date_string, format),返回datetime对象
对象方法strftime(format),返回字符串
字符串format函数格式化
import datetime d = datetime.datetime.strptime("2020,1,1,12,12,12","%Y,%m,%d,%H,%M,%S") #字符串 ——> 时间对象 print(d) d1 = datetime.datetime(2020,2,2,5,5,5) d2 = d1.strftime("%Y-%m-%d %H:%M:%S") #时间对象 ——> 字符串 print(d2) 执行结果: 2020-01-01 12:12:12 2020-02-02 05:05:05 2020-02-02 05:05:05
import datetime d = datetime.datetime.strptime("2020,1,1,12,12,12","%Y,%m,%d,%H,%M,%S") print("{0:%Y}/{0:%m}/{0:%d} {0:%H}:{0:%M}:{0:%S}".format(d)) print('{:%Y-%m-%d %H:%M:%S}'.format(d)) 执行结果: 2020/01/01 12:12:12 2020-01-01 12:12:12
3、timedelta对象
datetime2 = datetime1 + timedelta
datetime2 = datetime1 - timedelta
timedelta = datetime1 - datetime2
构造方法:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
year = datetime.timedelta(days=365)
total_seconds()返回时间差的总秒数
import datetime d = datetime.datetime(2020,1,1,1,1,1) d1 = d + datetime.timedelta(days=10) print(d1) print(datetime.timedelta(days=365).total_seconds()) 执行结果: 2020-01-11 01:01:01 31536000.0
4、标准库time
time
time.sleep(secs)将调用线程挂起指定的秒数
import time time.sleep(5) #挂起线程5秒,之后print('_____') print('_____')