datetime模块
datetime模块中包含如下类:
类名 | 功能说明 |
---|---|
date | 日期对象,常用的属性有year, month, day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
datetime_CAPI | 日期时间对象C语言接口 |
timedelta | 时间间隔,即两个时间点之间的长度 |
tzinfo | 时区信息对象 |
datetime模块中包含的常量
常量 | 功能说明 | 用法 | 返回值 |
---|---|---|---|
MAXYEAR | 返回能表示的最大年份 | datetime.MAXYEAR | 9999 |
MINYEAR | 返回能表示的最小年份 | datetime.MINYEAR | 1 |
一、date类
date对象由year年份、month月份及day日期三部分构成
import datetime import time a = datetime.date.today() #获取当前日期。2019-03-14 a=datetime.date(2017, 3, 22) #创建日期对象。2017-03-22 b=a.year #返回年份 b=a.month #返回月份 b=a.day #返回日期 b=a.__getattribute__('year') #返回年份 b=a.__getattribute__('month') #返回月份 b=a.__getattribute__('day') #返回日期 b=datetime.date(2017,3,15) c=a.__eq__(b) #a是否等于b c=a.__ge__(b) #a是否大于等于b c=a.__gt__(b) #a是否大于b c=a.__le__(b) #a是否小于等于b c=a.__lt__(b) #a是否小于b c=a.__ne__(b) #a是否不等于b c=a.__sub__(b) #a-b,计算ab相差时间。7 days, 0:00:00 c=a.__rsub__(b) ##b-a,计算ab相差时间。-7 days, 0:00:00 c=a.isocalendar() #把日期转换成元组标准形式。(2017, 12, 3) c=a.isoformat() #转换成YYYY-MM-DD形式。2017-03-22 c=a.isoweekday() #返回日期这一天是星期几。 #1 表示星期一;7表示星期日 c=a.weekday() #返回日期这一天是星期几 #0 表示星期一;6表示星期日 c=a.timetuple() #返回一个类型为time.struct_time的数组 #time.struct_time(tm_year=2017, tm_mon=3, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=81, tm_isdst=-1) c=a.timetuple().tm_year #返回年份。2017 d=a.toordinal() #从公元1年1月1日为1 到日期的天数.日期戳 c=datetime.date.fromordinal(d) #把日期戳转换成日期格式。2017-03-22 d=time.time() #当前的时间戳时间戳 c=datetime.date.fromtimestamp(d) #把时间戳转换成日期。2019-03-14 c=datetime.date.max #能够表示的最大日期。9999-12-31 c=datetime.date.min #能够表示的最小日期。0001-01-01 c=a.__format__('%y/%m/%d') #把日期转换成指定格式。17/03/22 c=a.strftime("%Y%m%d") #把日期转换成指定格式。20170322 c=a.__str__() #把日期转换成字符串
二.time类
time
类由hour
小时、minute
分钟、second
秒、microsecond
毫秒和tzinfo
五部分组成
import datetime a = datetime.time(12,20,59,899) #定义时间对象。12:20:59.000899 c=a.hour #返回小时 c=a.minute # 返回分钟 c=a.second #返回 秒 c=a.microsecond #返回毫秒 c=a.tzinfo #???????? c=a.__getattribute__('hour') #返回小时 c=a.__getattribute__('minute') # 返回分钟 c=a.__getattribute__('second') #返回 秒 b = datetime.time(11,20,59,889) c=a.__eq__(b) #a是否等于b c=a.__ge__(b) #a是否大于等于b c=a.__gt__(b) #a是否大于b c=a.__le__(b) #a是否小于等于b c=a.__lt__(b) #a是否小于b c=a.__ne__(b) #a是否不等于b c=datetime.time.max #最大的时间表示数值.23:59:59.999999 c=datetime.time.min #最小的时间表示数值.00:00:00 c=datetime.time.resolution #datetime最小单位.0:00:00.000001 c=a.__format__('%H:%M:%S') #转化为指定格式。12:20:59 c=a.strftime('%H:%M:%S') #转化为指定格式。12:20:59 c=a.isoformat() #转化为ISO标准格式。12:20:59.000899 c=a.__str__() #转化为字符串。12:20:59.000899
datetime类
datetime
类其实是可以看做是date
类和time
类的合体,其大部分的方法和属性都继承于这二个类
import datetime a=datetime.datetime.now() #获取系统当前日期和时间.2019-03-15 12:28:50.530801 a=datetime.datetime(2017, 3, 22, 16, 9, 33, 494248) #定义一个日期时间对象.2017-03-22 16:09:33.494248 c1=a.date() #提取 日期。2017-03-22 c2=a.time() #提取时间。16:09:33.494248 c3=a.utctimetuple() #转化为UTC时间元组 #time.struct_time(tm_year=2017, tm_mon=3, tm_mday=22, tm_hour=16, tm_min=9, tm_sec=33, tm_wday=2, tm_yday=81, tm_isdst=0) c=datetime.datetime.combine(c1,c2) #将一个date对象和一个time对象合并生成一个datetime对象.2017-03-22 16:09:33.494248 c=c3.tm_year #提取年份 a1=datetime.datetime(2017, 4, 23, 1, 19, 3, 494) c4=a1-a #计算时间差.31 days, 9:09:29.506246 c=c4.total_seconds() #返回时间差的总秒数。2711369.506246 c=c4.seconds #返回时间差秒数32969(包括小时分钟秒) c=c4.days #返回时间差天数 c=c4.microseconds #返回时间差微妙数 c=a1+datetime.timedelta(hours = 8) #加8小时 c=a1+datetime.timedelta(days = 8) #加8天 c=a1+datetime.timedelta(minutes = 8) #加8分钟 c=a1+datetime.timedelta(seconds = 8) #加8秒 c=a1+datetime.timedelta(microseconds = 8) #加8微妙
附录: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 |
当前时区的名称 |
%% |
%号本身 |
看资料 https://www.cnblogs.com/awakenedy/articles/9182036.html