python基础---7day(日期和时间)
time模块
time():浮点数,返回自纪元以来到现在的时间,以秒为单位。
>>> import time >>> print(time.time()) 1576805373.3153214
ctime():可以打印出人类可读格式
>>> import time >>> print(time.ctime()) Fri Dec 20 09:36:02 2019 >>> date1 = time.time() >>> date2 = date1 + 15 >>> print(time.ctime(date2)) Fri Dec 20 09:37:44 2019
gmtime()函数以UTC格式返回当前时间。localtime()会返回应用了当前时区的当前时间。mktime()取一个struct_time实例,将他转换为浮点数表示。
>>> print(time.gmtime()) time.struct_time(tm_year=2019, tm_mon=12, tm_mday=20, tm_hour=2, tm_min=0, tm_sec=20, tm_wday=4, tm_yday=354, tm_isdst=0) >>> print(time.localtime()) time.struct_time(tm_year=2019, tm_mon=12, tm_mday=20, tm_hour=10, tm_min=0, tm_sec=40, tm_wday=4, tm_yday=354, tm_isdst=0) >>> print(time.mktime(time.gmtime())) 1576778505.0 >>> print(time.ctime(time.mktime(time.gmtime()))) #返回的utc国际统一时间 Fri Dec 20 02:03:34 2019 >>> print(time.ctime(time.mktime(time.localtime()))) #返回的是CST时间即中国时间,与国际时间相差8小时 Fri Dec 20 10:06:06 2019
暂停程序(进程或者线程):
time.sleep(secs)
解析和格式化时间,strftime()和strptime()
>>> date = time.strftime('%Y-%m-%d') >>> print(date) #此类型的date值为str 2019-12-20 >>> date1 = time.strptime(date,'%Y-%m-%d') # 将date数据类型转换成元组格式 >>> print(date1) time.struct_time(tm_year=2019, tm_mon=12, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=354, tm_isdst=-1)
datetime:日期和时间值管理
1、时间
time()实例包含hour、minute、second、和microsecond属性,还可以包含时区信息。
2、日期
获取当前日期当前时间today(),与time.time()相同
>>> import datetime >>> print(datetime.date.today()) 2019-12-20 >>> test = datetime.date.today() >>> print(test,type(test)) 2019-12-20 <class 'datetime.date'>
返回ctime()样式的字符串
>>> import datetime >>> print(datetime.date.today()) 2019-12-20 >>> test = datetime.date.today() >>> print(test,type(test)) 2019-12-20 <class 'datetime.date'> >>> test1 = test.ctime() >>> print(test1,type(test1)) Fri Dec 20 00:00:00 2019 <class 'str'>
timetuple()返回时间元组,与time.localtime()兼容。
>>> test3 = test.timetuple() >>> print(test3) time.struct_time(tm_year=2019, tm_mon=12, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=354, tm_isdst=-1)
toordinal(),返回日期是是自 0001-01-01 开始的第多少天
>>> test4 = test.toordinal() >>> print(test4) 737413
day、month、year
>>> print(test.day) 20 >>> print(test.month) 12 >>> print(test.year) 2019
fromtimestamp()时间戳本地日期,等同于time.time()
>>> import time >>> test = time.time() >>> import datetime test1 = datetime.date.fromtimestamp(test) >>> print(test1) 2019-12-20
timedelta
通过对两个datetime对象完成算术运算,或者结合使用datetime和timedelta,可以计算出将来和过去的日期。将两个日期相减可以生成一个timedelta,还可以对某个日期增加或减去一个timedelta来生成另一个日期。timedelta的内部值按日、秒和微秒存储。
比较值
日期和时间值都可以使用标准比较操作符来比较,从而确定哪个在前,哪个在后。
>>> d1 = datetime.date.today() >>> print(d1) 2019-12-20 >>> d2 = datetime.timedelta(days=1) >>> print(d2) 1 day, 0:00:00 >>> d3 = d1 + d2 >>> print(d3) 2019-12-21
不积跬步,无以至千里;不积小流,无以成江海。