主要包含处理年月日时分秒对应的时间(着重时分秒)
import time
专门处理年月日
import datetime
1.time模块
1)获取当前时间
时间戮:就是从格林威治时间(1970年1月1日0:0:0)到当前时间的时间差(单位是秒)
- 存时间以时间戮的形式去存,可以节省内存空间(一个浮点数的内存是4/8个字节,存一个字符串一个字符占2个字节)
- 自带时间加密的功能(加密更加方便)
time1=time.time()
print(type(time1),time1)
1533804907.0403938
2)将时间戮转换成struct_time
localtime(seconds)
参数seconds:
a.不传参,就是将当前时间对应的时间戮转换成struct——time
b.传参,就是将指导的时间转换成struct_time
tm_year:年
tm_mon:月
tm_mday:日
tm_hour:时
tm_min:分
tm_sec:秒
tm_wday:星期(0-6-->周一到周天)
tm_yday:当前是今年的第几天
tm_isdst:是否是夏令时
time1=time.localtime()
print('1',time1)
1 time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=16, tm_min=55, tm_sec=7, tm_wday=3, tm_yday=221, tm_isdst=0)
print(time1.tm_year,time1.tm_mon,time1.tm_mday)
time1 = time.localtime(533799788.713323)
print(time1)
2018 8 9
time.struct_time(tm_year=1986, tm_mon=12, tm_mday=1, tm_hour=13, tm_min=43, tm_sec=8, tm_wday=0, tm_yday=335, tm_isdst=0)
3)将struct_time转换成时间戮
strc=time.strptime('2018-8-31 23:31:00','%Y-%m-%d %H:%M:%S')
time1=time.mktime(strc)
print(time1)
time1+=60*60
print(time1)
print('dfs',time.localtime(time1))
1535729460.0
1535733060.0
dfs time.struct_time(tm_year=2018, tm_mon=9, tm_mday=1, tm_hour=0, tm_min=31, tm_sec=0, tm_wday=5, tm_yday=244, tm_isdst=0)
2018-08-09 16:55:07
4)时间的格式转换
time.strftime(时间格式,时间)将时间以指定的格式转换成字符串
time_str=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
print(time_str)
5)将时间字符串转换成相应的struct_time
struct_time=time.strptime('今天是2018年8月9号','今天是%Y年%m月%d号')
print(struct_time)
struct_time = time.strptime('2018-8-9', '%Y-%m-%d')
print(struct_time)
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=221, tm_isdst=-1)
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=221, tm_isdst=-1)
6)延迟
sleep(秒)
可以让线程阻塞指定时间
2.dateTime模块
(1)日期类(data)只能表示年月日
- 最小日期
print(datetime.date.min,type(datetime.date.min))
0001-01-01
- 最大日期
print(datetime.date.max)
9999-12-31
- 最小单位
print(datetime.date.resolution)
1 day, 0:00:00
2)类方法
- 获取当前日期
today=datetime.date.today()
print(today)
2018-08-09
- 将时间戮转换成日期
print(today2)
1970-01-01
3)对象属性
today = datetime.date.today()
print(today.year,type(today.year))
print(today.month)
print(today.day)
2018
8
9
4)对象方法
- 获取指定日期的星期(1-7-->周一到周天)
print(today.isoweekday())
4
- 将时间转换成Thu Aug 9 00:00:00 2018格式
print(today.ctime())
Thu Aug 9 00:00:00 2018
- 将指定的日期转换成指定格式的字符串日期
print(today.strftime('%Y-%m-%d %w'))
2018-08-09 4
- 将日期转换成struct_time
print(today.timetuple())
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=221, tm_isdst=-1)
- 创建日期对象
print(datetime.date(2017,9,10))
2017-09-10
2)datetime类
# 1)年月日时分秒毫秒
date=datetime.datetime.today()
print(date)
# 2)获取小时
print(date.hour)
#3)获取分
print(date.minute)
#4)获取秒
print(date.second)
#5)获取毫秒
print(date.microsecond)
# 6)将时间戮转换成struct_time
print(date.fromtimestamp(1533802816.9164076))
# print(date.utcfromtimestamp(1533802816.9164076))
# 7)获取当前时间
print(datetime.datetime.now())
# 8)将时间转换成struct_time格式
print(date.timetuple())
# 9)将字符串转换成struct_time格式
print(date.strptime('今天是2018年8月9号','今天是%Y年%m月%d号'))
#10)将时间转换成时间戮
print(date.timestamp())
print(date.date())
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))