1.时间模块
1.获取当前时间
时间戳:就是从格林威治时间(1970年1月1日0:0:0)到当前时间的时间差(单位是秒)
( '2010-10-10 12:10:29')
- 存时间以时间戳的形式去存,可以节省内存空间(一个浮点数的内存是4/8个字节,存一个字符串一个字符占2个字节)
- 自带对时间加密的功能(加密更方便)
time1 = time.time()
print(time1, type(time1))
2. 将时间戳转换成struct_time
localtime(seconds)
参数seconds:a.不传参,就是将当前时间对应的时间戳转换成struct_time
b.传参,就是将指定的时间转换成struct_time
time1 = time.localtime()
print(time1)
struct_time的结构:
tm_year: 年
tm_mon: 月
tm_mday: 日
tm_hour: 时
tm_min:分
tm_sec:秒
tm_wday:星期(0-6 --> 周一 - 周天)
tm_yday:当前是当年的第几天
tm_isdst:是否是夏令时
print(time1.tm_year,time1.tm_mon, time1.tm_mday)
将时间戳转换成struct_time
struct1 = time.localtime(1000000000)
print(struct1)
2.1 将struct_time抓换成时间戳
mktime(结构时间)
"""2018-12-31 23:30:40"""
strc = time.strptime('2018-12-31 23:30:40','%Y-%m-%d %H:%M:%S')
time1 = time.mktime(strc)
时间加一个小时
time1 += 60*60
print('==',time.localtime(time1))
3.时间的格式转换
strftime(时间格式,时间)
将时间以指定的格式转换成字符串
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(time_str)
strptime(需要转换的字符串,时间格式)
将时间字符串转换成相应的struct_time
struct_time = time.strptime('今天是2018年8月5号', '今天是%Y年%m月%d号')
struct_time = time.strptime('2018-7-20', '%Y-%m-%d')
print(struct_time)
4.延迟
sleep(秒)
可以让线程阻塞指定的时间
time.sleep(10)
2.datatime模块
# ============= 1.日期类(date) =========-- 只能表示年月日
"""1.类的字段"""
# 最小日期
print(datetime.date.min, type(datetime.date.min))
# 最大日期
print(datetime.date.max)
# 最小单位
print(datetime.date.resolution)
"""2.类方法"""
# 获取当前日期
today = datetime.date.today()
print(today)
# 将时间戳转换成日期
today2 = datetime.date.fromtimestamp(0)
print(today2)
"""2.对象属性"""
# 年(year)、月(month)、日(day)属性
print(today.year, type(today.year))
print(today.month)
print(today.day)
"""3.对象方法"""
# 1. 获取指定日期对应的星期
print(today.isoweekday())
# 2. 将指定日期转换成指定格式的字符串日期
print(today.strftime('%Y年%m月%d日 周%w'))
# 3. 将日期转换成struct_time
print(today.timetuple())
"""4.创建日期对象"""
print(datetime.date(2017, 9, 10))
# ========datetime类=========
"""1.类方法"""
# 1. 将时间戳转换成datetime
print(datetime.datetime.fromtimestamp(0))
# 2. now(时区): 获取当前时间
print(datetime.datetime.now())
now_dt = datetime.datetime.now()
# 3. 将时间字符串按指定的格式转换成datetime对象
print(datetime.datetime.strptime('2018-8-10 10:30:40', '%Y-%m-%d %H:%M:%S'))
"""2.对象方法"""
# 1.将datatime对象转换成struct_time
print(now_dt.timetuple())
# 2.获取datatime中时分秒的部分
print(now_dt.time())
# 3.获取datetime中日期的部分
print(now_dt.date())
# 4.将datetime转换成时间戳
print(now_dt.timestamp())
# ============3.timedelta方法==========
# 日期加一天
print(today + datetime.timedelta(days=100))
print(now_dt + datetime.timedelta(days=1))
# 日期减两天
print(today + datetime.timedelta(days=-2))
print(now_dt + datetime.timedelta(days=-2))
# 时间增加50分钟
print(now_dt + datetime.timedelta(minutes=50))
# 时间增加1000毫秒
print(now_dt + datetime.timedelta(microseconds=1000))