time模块
三种时间表现形式:
1.时间戳:给计算机看。记录了自1970-01-01 00:00:00到当前时间过了多少秒。
2.格式化时间(Format String):返回的是字符串 2019-11-16
3.结构化时间(struct_time):以元组的形式返回时间元素(年、月、日、时、分、秒、一周中第几天、一年中第几天、夏令时)
import time
#1.获取时间戳,计算时间时使用
print(time.time())
>>>1573886771.964408
#2.获取格式化时间,拼接用户时间格式并保存使用
#获取年月日时分秒
print(time.strftime('%Y-%m-%d %H:%M:%S')) # %X ==%H:%M:%S
>>>2019-11-16 14:46:11
print(time.strftime('%Y-%m-%d %X))
#获取年月
print(time.strftime('%Y/%m'))
>>>2019/11
#3.获取结构化时间
print(time.localtime())
>>>time.struct_time(tm_year=2019, tm_mon=11, tm_mday=16, tm_hour=14, tm_min=51, tm_sec=35, tm_wday=5, tm_yday=320, tm_isdst=0)
print(type(time.localtime))
>>> <class 'builtin_function_or_method'>
struct_time = time.localtime()
print(struct_time.tm_year)
>>>2019
print(struct_time.tm_mon)
>>>11
print(struct_time.tm_mday)
>>>16
#获取当前时间的格式化时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
>>>2019-11-16 14:58:01
#将字符串格式的时间转为结构化时间
res = time.strptime('2019-11-16', '%Y-%m-%d')
print(res)
>>>time.struct_time(tm_year=2019, tm_mon=11, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=320, tm_isdst=-1)
datetime模块
一般用于时间的加减
import datetime
#获取当前年月日
print(datetime.date.today())
>>>2019-11-16
#获取当前年月日时分秒
print(datetime.datetime.today())
>>>2019-11-16 15:20:37.535983
time_obj = datetime.datetime.today()
print(type(time_obj))
print(time_obj.year)
print(time_obj.month)
print(time_obj.day)
>>>
<class 'datetime.datetime'>
2019
11
16
#获取一周中第几天
#UTC 0-6
print(time_obj.weekday())
#ISO 1-7
print(time_obj.isoweekday())
#时区时间
print(datetime.datetime.now()) #北京时间
>>>2019-11-16 15:41:29.844035
print(datetime.datetime.utcnow()) #格林尼治
>>>2019-11-16 07:41:29.844035
'''
日期/时间的计算
'''
#得到当前时间
current_time = datetime.datetime.now()
print(current_time)
#获取7天
get_time = datetime.timedelta(days=7)
print(get_time)
#7天后的时间
later_time = current_time + get_time
print(later_time)
>>>
2019-11-16 15:50:25.214644
7 days, 0:00:00
2019-11-23 15:50:25.214644