PYTHON的日期和时间
(一)time模块
引入time模块
>>> import time
time.time()
>>> time.time()
1558488465.0358229
time.localtime()
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=22, tm_hour=9, tm_min=30, tm_sec=32, tm_wday=2, tm_yday=142, tm_isdst=0)
tm_year 公元纪年
tm_mon 月份
tm_mday 日期
tm_hour 小时
tm_min 分钟
tm_sec 秒
tm_wday 星期
tm_yday 一年中第几天
tm_isdst 是否是夏令时
time.localtime(0)
括号里的0 1970年1月1日
>>> time.localtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
常用'%Y %m %d %H:%M:%S'
time.strftime(’ ',t) 格式化时间
>>> t=time.localtime(1445416140)
>>> t
time.struct_time(tm_year=2015, tm_mon=10, tm_mday=21, tm_hour=16, tm_min=29, tm_sec=0, tm_wday=2, tm_yday=294, tm_isdst=0)
>>> s=time.strftime('%a %b %d %I:%M%p %Y',t)
>>> s
'Wed Oct 21 04:29PM 2015'
time.strftime(s,’ ') 结构化时间
>>> time.strptime(s,'%a %b %d %I:%M%p %Y')
time.struct_time(tm_year=2015, tm_mon=10, tm_mday=21, tm_hour=16, tm_min=29, tm_sec=0, tm_wday=2, tm_yday=294, tm_isdst=-1)
tm_isdst=-1 表示该位未知
其它还有:
asctime()函数
ctime() 函数
输入格式化时间
mktime() 函数
结构体时间转换成时间戳
(二)datetime模块
导入模块
>>> import datetime
1.date类型
year 年
month 月
day 日
datetime.date.today()
>>> import datetime
>>> datetime.date.today()
datetime.date(2019, 5, 22)
>>> d=datetime.date.today()
>>> d
datetime.date(2019, 5, 22)
>>> d.year
2019
>>> d.month
5
>>> d.day
22
#直接从datetime模块中引入date类型
>>> from datetime import date
>>> date.today()
datetime.date(2019, 5, 22)
>>> d=date.today()
>>> d
datetime.date(2019, 5, 22)
>>> d.year
2019
>>> d.month
5
>>> d.day
22
d.timetuple() 结构化
>>> d.timetuple()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=142, tm_isdst=-1)
weekday()
日期是星期几 0是星期一
isoweekday()
标准的星期几 1是星期一
strftime()
日期格式化成字符串
date.fromtimestamp(ts)
时间戳转换成2018,3,31
>>> import time
>>> ts=time.time()
>>> ts
1558521201.3487425
>>> date.fromtimestamp(ts)
datetime.date(2019, 5, 22)
2.time类型
hour 小时
minute 分钟
second 秒
microsecond 微秒
datetime.time(10, 24, 5, 12)
>>> from datetime import time
>>> t = time(10,24,5,12)
>>> t
datetime.time(10, 24, 5, 12)
>>> t.hour
10
>>> t.minute
24
>>> t.second
5
>>> t.microsecond
12
3.datetime类型
datetime.now()
创建datetime类型的对象
year 年
month 月
day 日
hour 小时
minute 分钟
second 秒
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2019, 5, 22, 18, 51, 58, 445775)
datetime.timedelta(1,13220,995590)
days 天数
seconds 不足一整天的秒数
microseconds 不足一秒的毫秒数
>>> d
datetime.date(2019, 5, 22)
>>> d1=datetime.now()
>>> d1
datetime.datetime(2019, 5, 22, 19, 0, 3, 294741)
>>> d2=datetime.combine(d,t)
>>> d2
datetime.datetime(2019, 5, 22, 10, 24, 5, 12)
>>> td=d1-d2
>>> td
datetime.timedelta(seconds=30958, microseconds=294729)
>>> td.days
0
>>> td.seconds
30958
>>> td.microseconds
294729
4.timedelta类型 时间日期加减
>>> from datetime import timedelta
>>> timedelta(weeks=1)
datetime.timedelta(days=7)
>>> timedelta(days=1,hours=12)
datetime.timedelta(days=1, seconds=43200)
>>> timedelta(days=1.5)
datetime.timedelta(days=1, seconds=43200)
>>> today=datetime.now()
>>> today
datetime.datetime(2019, 5, 22, 19, 15, 1, 174558)
>>> tomrrow=today+timedelta(days=1)
>>> tomrrow
datetime.datetime(2019, 5, 23, 19, 15, 1, 174558)
5.tzinfoleix 类型
6.timezone 类型
(三)calendar模块
calendar.weekday()
一个日期是星期几 0-6
>>> import calendar
>>> calendar.weekday(year=2018,month=3,day=12)
0
calendar.isleap(2018)
判断闰年
>>> calendar.isleap(2018)
False
calendar.monthrange()
一个月的第一天是星期几,这个月的天数
>>> calendar.monthrange(year=2018,month=3)
(3, 31)