datetime是python中日期和时间管理模块,包含date,time,datetime,timedelta,datetime_CAPI,sys,timezone等类
datetime模块中包含的常量:
datetime.MAXYEAR返回能表示的最大年份9999
datetime.MINYEAR返回能表示的最小年份1
date类
date类对象结构为date(year, month, day),有year,month和day三个属性。date对象可以比较大小,也可以相减
datetime.date.resolution:日期对象的分辨率(最小单位)是一天(1 day, 0:00:00)
datetime.date.min:日期对象最小值是0001-01-01
datetime.date.max:日期对象最大值是9999-12-31
date类的方法:
today()以当前时间获取一个date对象
today=datetime.date.today()
print(today)
2019-01-18 #today是一个date对象而非str对象
replace():修改date对象具体项,返回一个新的修改过的date对象,原对象不受影响
day=today.replace(2018,5)
print(day)
2018-05-18
day=today.replace(day=25)
print(day)
2019-01-25
isoformat(date):以ISO 8601格式("YYYY-MM-DD")转化一个日期对象为个字符串对象
fromisoformat(str):把一个"YYYY-MM-DD"格式的表示日期的字符串转化为date对象
weekday()和isoweekday():返回日期对象是周几。weekday()返回值是0~6(0表示周一),isoweekday()返回值是1~7(1表示周一)
isocalendar()返回一个3元元组,值分别表示(年份,第几周,周几)
print(today.isocalendar())
(2019, 3, 5)
strftime():用于将date对像进行自定义格式化转化:
today.strftime('%Y-%m-%d %H:%M:%S')
2019-01-18 00:00:00 #date对象时间默认00:00:00
timetuple():以时间结构体struct_time形式返回时间信息,与time.localtime()兼容
print(today.timetuple())
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=18, tm_isdst=-1)
fromtimestamp(int):解析一个int格式的时间戳转化为date对象
toordinal():把一个date对象转化为位于公历的序数(相对于0001-01-01日期之后多少天)的int整数
fromordinal(int):把一个int格式的位于公历的序数转化为date对象
time类
time类对象结构为time([hour[, minute[, second[, microsecond[, tzinfo]]]]])。time对象所有的参数都是可选的(除tzinfo之外的参数不指定默认为0)。tzinfo可以是None或者是tzinfo子类的一个实例。
datetime.time.min:时间对象最小值是00:00:00
datetime.time.max:时间对象最大值是23:59:59.999999
datetime.time.resolution:时间对象分辨率(最小单位)为1微秒0:00:00.000001
直接指定时间项获取时间对象:
sj=datetime.time(10,15,20)
time类的方法:
isoformat():以ISO 8601格式(HH:MM:SS[.mmmmmm][+HH:MM].)返回时间值
replace():功能和用法和date对象的replace()相同
strftime(str):以自定义的格式打印时间信息
sj.strftime('%Y-%m-%d %H:%M:%S')
1900-01-01 10:15:20 #日期默认为1900年1月1号
datetime类
datetime对象结构为 datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])。 其中year, month 以及day 参数是必需的。而tzinfo 可以是None 或者是tzinfo子类的一个实例。
datetime.datetime.resolution:datetime对象分辨率(最小单位)为1微秒0:00:00.000001
datetime.datetime.min:datetime对象最小值是0001-01-01 00:00:00
datetime.datetime.max:datetime对象最大值是9999-12-31 23:59:59.999999
datetime类的方法
today():获取本地当前日期和时间(没有时区信息),等于datetime.datetime.fromtimestamp(time.time())。
now([tz]):返回当前日期和时间,如果没有使用tz作为参数,其结果与today方法一样;如果有时区信息,则返回的时区对应的时间(注:这里要求的tz是tzinfo类的一个实例而不是一个字符串)。
utcnow():UTC时间(UTC,Coordinated Universal Time ,世界标准时间)
>>>print(datetime.datetime.now())
2019-01-18 10:57:22.871078
>>>print(datetime.datetime.today())
2019-01-18 10:57:25.300716
>>>print(datetime.datetime.utcnow())
2019-01-18 02:58:11.081532
fromtimestamp(timestamp[, tz]):根据时间戳返回一个时间信息。如果有时区信息'tz',返回的是该时区的时间信息。
utcfromtimestamp(timestamp):将时间戳转化为UTC时间
toordinal()将一个datetime对象返回自公历1年1月1日起的第几天的int整数
fromordinal()将一个int整数天数计算出来对应公历1年1月1日起的哪年哪月哪日
conbine(date,time)将一个date实例和一个time实例结合创建一个datetime实例(date对象默认00时00分00秒,time对象默认1900年1月1号)
strptime():将datetime对象和格式化字符串之间相互转化
now=datetime.datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S'))
2019-01-18 11:10:42 #此时转换为str类型
datetime.datetime.strptime('2019-01-18 11:10:42', '%Y-%m-%d %H:%M:%S')
2019-01-18 11:10:42 #此时转换为datetime对象
date():返回datetime对象的date对象
time():返回datetime对象的time对象
timetz():使用相同的时间和时区返回time对象
now=datetime.datetime(2019,1,18,11)
print(now.date(),now.time().hour)
2019-01-18 11
replace():对datetime实例进行修改,可以顺序修改或者使用关键字参数指定修改
timetuple():将一个datetime.datetime对象解析成一个struc_time结构体返回。
utctimetuple():与timetuple类似,返回UTC时间的解析结构体
print(now.timetuple())
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=18, tm_hour=11, tm_min=19, tm_sec=2, tm_wday=0, tm_yday=21, tm_isdst=-1)
weekday()返回datetime对象是周几,值从0~6(0表示周一)
isoweekday()返回datetime对象是周几,值从1~7(1表示周一)
isocalendar()返回一个三值的元组,格式为(年,第几周,周几)
isoformat(datetime):以ISO 8601格式(YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM])打印datetime.datetime对象。默认使用的间隔符是'T'.
datetime.datetime.isoformat(now)
2019-01-18T11:23:55.043247
ctime()将datetime对象解析成time.ctime的字符串
print(now.ctime())
Fri Jan 18 11:25:45 2019
timedelta类
datetime或date对象之间计算和比较,两个日期相减可以生成一个timedelta,还可以对某个日期与一个timedelta计算来得出另一个日期。
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
datetime.timedelta.resolution:timedelta对象分辨率(最小单位)为1微秒0:00:00.000001
datetime.timedelta.min:timedelta对象最小值是-999999999 days, 0:00:00
datetime.timedelta.max:timedelta对象最大值是999999999 days, 23:59:59.999999
datetime对象只有一个方法:total_seconds()返回一个timedelta对象代表的时间段的秒数
最后编辑:2019-01-21作者:qingheluo
这个作者貌似有点懒,什么都没有留下。