一、datetime模块介绍
1.datetime包含的类2.datetime包含的常量 二、date类
1.对象构成2、date对象中包含的方法与属性
1、用于日期比较大小的方法2、获得二个日期相差多少天3、ISO标准化日期4、其他方法与属性 3、日期的字符串输出 三、time类
(一)、time对象构成(二)、time类中的方法和属性(三)、时间的字符串输出 四、datetime类
(一)、datetime对象构成(二)、专属于datetime的方法和属性
一、datetime模块介绍 1.datetime包含的类
获取当天的年月日
>>> from datetime import date >>> today = date.today() >>> today.year 2022 >>> today.month 3 >>> today.day 102、date对象中包含的方法与属性 1、用于日期比较大小的方法
>>> yesterday = date(today.year,today.month,today.day-1) >>> yesterday datetime.date(2022, 3, 9) >>> yesterday.day 9 >>> yesterday.month 3 >>> yesterday.year 2022 >>> yesterday == today False >>> yesterday < today True >>> yesterday > today False2、获得二个日期相差多少天
计算结果的返回值类型为datetime.timedelta,只能返回多少天
>>> yesterday - today datetime.timedelta(days=-1) >>> (yesterday - today).days -13、ISO标准化日期
isocalendar().week 返回的是距离去年年底过了多少周
isocalendar().weekday 返回的是周几 (1-7)
>>> today.isocalendar() datetime.IsoCalendarDate(year=2022, week=10, weekday=4)
属性可以通过索引访问,也可以通过句点符访问year、week、weekday
>>> today datetime.date(2022, 3, 10) >>> today.isocalendar() datetime.IsoCalendarDate(year=2022, week=10, weekday=4) >>> today.isocalendar().year 2022 >>> today.isocalendar().week 10 >>> today.isocalendar().weekday 4 >>> today.isocalendar()[0] 2022 >>> today.isocalendar()[1] 10 >>> today.isocalendar()[2] 4
-
isoformat(…)
-
返回符合ISO 8601标准 (
YYYY-MM-DD
) 的日期字符串;
>>> today.isoformat() '2022-03-10'
isoweekday(…): 返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7)
>>> today.isoweekday() 4
与isoweekday(…)相似的还有一个weekday(…)方法,只不过是weekday(…)方法返回的周一为 0, 周日为 6
>>> today.weekday() 34、其他方法与属性
1). timetuple(…):该方法为了兼容time.localtime(…)返回一个类型为time.struct_time的数组,但有关时间的部分元素值为0:
tm_yday:表示的是从新的一年的元旦(零点)一共走过的天数
>>> from datetime import date >>> a = date.today() >>> a datetime.date(2022, 3, 10) >>> a.timetuple() time.struct_time(tm_year=2022, tm_mon=3, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=69, tm_isdst=-1) >>> 31 + 28 + 10 69 >>> a.timetuple().tm_year 2022 >>>
2).toordinal(…): 返回公元公历开始到现在的天数。公元1年1月1日为1
>>> a.toordinal() 738224
3). replace(…):返回一个替换指定日期字段的新date对象。参数3个可选参数,分别为year,month,day。注意替换是产生新对象,不影响原date对象。
>>> a.replace(year=2010) datetime.date(2010, 3, 10) >>> a datetime.date(2022, 3, 10)
4).resolution:date对象表示日期的最小单位。这里是天。
>>> a.resolution datetime.timedelta(days=1) >>> a.resolution.days 1
5).fromordinal(…):将Gregorian日历时间转换为date对象;Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多。(就是把时间天数转换为date对象)
>>> date.fromordinal(a.toordinal()) datetime.date(2022, 3, 10)
6).fromtimestamp(…):根据给定的时间戮,返回一个date对象
>>> import time >>> time.time() 1646920802.0949812 >>> date.fromtimestamp(time.time()) datetime.date(2022, 3, 10)
7).today(…):返回当前日期
>>> date.today() datetime.date(2022, 3, 10)
8).max: date类能表示的最大的年、月、日的数值;min: date类能表示的最小的年、月、日的数值
>>> date.max datetime.date(9999, 12, 31) >>> date.min datetime.date(1, 1, 1)3、日期的字符串输出
1、如果你想将日期对象转化为字符串对象的话,可以用到__format__(…)方法以指定格式进行日期输出:
>>> a.__format__('%Y-%m-%d')
'2022-03-10'
>>> a.__format__('%Y/%m/%d')
'2022/03/10'
>>> a.__format__('%D')
'03/10/22'
等价于strftime
>>> a.strftime('%Y-%m-%d')
'2022-03-10'
2、如果只是相简单的获得日期的字符串,使用str(…)
>>> str(a) '2022-03-10'
3、如果想要获得ctime样式的格式请使用ctime(…):
>>> a.ctime() 'Thu Mar 10 00:00:00 2022'三、time类 (一)、time对象构成
>>> from datetime import time >>> a = time(1,2,3,4) >>> a.hour 1 >>> a.minute 2 >>> a.second 3 >>> a.microsecond 4 >>> a.tzinfo(二)、time类中的方法和属性
1、比较时间大小
>>> a datetime.time(1, 2, 3, 4) >>> b = time(2,4,5,7) >>> a > b False >>> a == b False >>> a <= b True
2、判断时间对象是否非零,返回值为True/False:
>>> a == 0 False >>> a != 0 True
3、其他属性
1)、max:最大的时间表示数值;min:最小的时间表示数值
>>> a.max datetime.time(23, 59, 59, 999999) >>> a.min datetime.time(0, 0)
2)、resolution:时间间隔单位为分钟
>>> time.resolution datetime.timedelta(microseconds=1) >>> a.resolution datetime.timedelta(microseconds=1) >>> time.resolution.microseconds 1(三)、时间的字符串输出
1、如果你想将时间对象转化为字符串对象的话,可以用到__format__(…)方法以指定格式进行时间输出
>>> a
datetime.time(1, 2, 3, 4)
>>> a.strftime('%H:%M:%S')
'01:02:03'
>>> a.__format__('%H:%M:%S')
'01:02:03'
2、ISO标准输出
如果要使输出的时间字符符合ISO标准,请使用isoformat(…):
>>> a.isoformat() '01:02:03.000004'
3、如果只是相简单的获得时间的字符串,则使用str(…):
>>> str(a) '01:02:03.000004'四、datetime类 (一)、datetime对象构成
>>> a = datetime.today() >>> a datetime.datetime(2022, 3, 10, 22, 51, 59, 983579)(二)、专属于datetime的方法和属性
1、 date(…):返回datetime对象的日期部分;time(…):返回datetime对象的时间部分:
>>> a = datetime.today() >>> a.date() datetime.date(2022, 3, 10) >>> a.time() datetime.time(22, 55, 22, 156704)
2、utctimetuple(…):返回UTC时间元组:
>>> a.utctimetuple() time.struct_time(tm_year=2022, tm_mon=3, tm_mday=10, tm_hour=22, tm_min=55, tm_sec=22, tm_wday=3, tm_yday=69, tm_isdst=0)
3、combine(…):将一个date对象和一个time对象合并生成一个datetime对象:
>>> a datetime.datetime(2022, 3, 10, 22, 55, 22, 156704) >>> datetime.combine(a.date(),a.time()) datetime.datetime(2022, 3, 10, 22, 55, 22, 156704)
4、now(…):返回当前日期时间的datetime对象:
>>> datetime.now() datetime.datetime(2022, 3, 10, 23, 0, 16, 227303)
5、utcnow(…):返回当前日期时间的UTC datetime对象:
>>> from datetime import datetime >>> datetime.utcnow() datetime.datetime(2022, 3, 11, 0, 19, 10, 558382)
6、strptime(…):根据string, format 2个参数,返回一个对应的datetime对象:注意这里的字符串必须用**‘-’分隔开,比如说’2017-3-22 15:25’**
>>> datetime.strptime('2017-3-22 15:25', '%Y-%m-%d %H:%M')
datetime.datetime(2017, 3, 22, 15, 25)
>>> datetime.strptime('2017-3-22','%Y-%m-%d')
datetime.datetime(2017, 3, 22, 0, 0)
7、utcfromtimestamp(…):UTC时间戳的datetime对象,时间戳值为time.time():
>>> import time >>> datetime.utcfromtimestamp(time.time()) datetime.datetime(2022, 3, 11, 0, 25, 58, 512137)



