首页 > 其他学习 > python > python中的datetime模块
2019
01-21

python中的datetime模块

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对象代表的时间段的秒数

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。