自学Python 48 日期和时间函数(三)

Python 日期和时间函数(三)



  本篇在Python日期和时间函数(一)和(二)的基础上,继续讲解Python日期和时间函数的知识。


三、使用 datetime模块

  在Python程序中,datetime是一个使用面向对象编程设计的模块,可以在 Python 软件
项目中使用日期和时间。相比于time模块,datetime模块的接口更加直观、更加容易被调用。
  在模块datetime中定义了两个常量: datetime.MINYEAR和 datetime.MAXYEAR,分别
表示 datetime 所能表示的最小、最大年份。其中,MINYEAR=1, MAXYEAR = 9999。
  在模块datetime中定义了如下表所示的类。

类名称描述
datetime.date表示日期的类,常用的属性有year,month和day
datetime.time表示时间的类,常用的属性有 hour、 minute、second 和 microsecond
datetime.datetime表示日期时间
datetime.timedelta表示时间间隔,即两个时间点之间的长度
datetime.tzinfo时区有关的相关信息

注意:上面列出的类型的对象都是不可变(immutable)的。

1.类 date

  类date表示一个日期、曰期由年、月、日组成,其构造函数如下所示:

class datetime.date(year,month,day)

 ● year的范围是[MINYEAR,MAXYEAR],即[1,9999]。
 ● month的范围是[1,12]。月份是从1开始的,不是从0开始的。
 ● day的最大值根据给定的year, month参数来决定,例如闰年2月份有29天。
  在类 date 中定义了加下表所示的常用方法和属性。

方法和属性描述
date.max、date.mindate对象所能表示的最大、最小日期
date.resolutiondate对象表示日期的最小单位,这里是天
date.today()返回一个表示当前本地日期的date对象
date.fromtimestamp(timestamp)根据给定的时间戳,返回一个date对象
datetime.fromordinal(ordinal)将 Gregorian日历时间转换为 date对象(Gregorian是一种日历表示方法,类似于我国的农历,欧美国家使用比较多)

  例如在下面的实例文件中,演示了类date 实现日期操作的过程:

from datetime import *
import time
print('date.max:', date.max)
print('date.min:', date.min)
print('date.today():',date.today())
print('date.fromtimestamp():',date.fromtimestamp (time.time()))

  执行后会输出:
在这里插入图片描述

  在类date中提供了如下表所示的常用实例方法和属性。

方法和属性描述
date.year、date.month、date.day年、月、日
date.replace(year, month, day)生成一个新的日期对象,用参数指定的年、月、日代替原有对象中的属性。(原有对象仍保持不变)
date.timetuple()返回日期对应的time.struct_time对象
date.toordinal()返回日期对应的 Gregorian Calendar日期
date.weekday()返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推
data.isoweekday()返回weekday,如果是星期一,返回1;如果是星期2,返回2,返回2,以此类推
date.isocalendar()返回格式如(year, month,day)的元组
date.isoformat()返回格式如‘YYYY-MM-DD’ 的字符串
date.strftime(fmt)自定义格式化字符串

  例如在下面的实例文件中,演示了使用类date的实例方法和属性实现日期操作的过程:

from datetime import *
import time
now = date(2022,7,30 )
tomorrow = now.replace(day = 31)
print('now:',now,'tomorrowe:',tomorrow)
print('timetuple():',now.timetuple())
print('weekday():',now.weekday())
print('isoweekday():',now.isoweekday())
print('isocalendar()):',now.isocalendar())
print('isoformat():',now.isoformat())

  执行后会输出:
在这里插入图片描述

  在Pytho程序中,类date还可以对某些日期操作进行重载,它允许我们对日期进行如下所示的操作:

date2 = date1 + timedelta		#日期加上一个间隔,返回一个新的日期对象(timedelta将在下面介绍,表示时间间隔)
date2 = date1 - timedelta		#日期隔去间隔,返回一个新的日期对象
timedelta = date1 - date2		#两个日期相减,返回一个的间间隔对象
date1 < date2		#两个日期进行比较

注意:当对日期进行操作时,需要防止日期超出它所能表示的范围。

2.类Time

  在Python程序中,类time表示时间,由时、分、秒以及微秒组成。类time的构造函数如下所示:

Class datetime.time (hour[,minute[ ,second[,microsecond[,tzinfo] ] ] )

参数说明如下表所示:

参数名称描述
参数tzinfo表示时区信息
参数hour取值范围为[0, 24)
参数minute取值范围为[0, 60)
参数second取值范围为[0, 60)
参数microsecond取值范围为[0, 1000000)

  类time中的常用属性如下所示:
 ● time.min、time.max: time 类所能表示的最小、最大时间。其中,time.min = time(0,0,0, 0),time.max = time(23, 59, 59, 999999)
 ● time.resolution: 时间的最小单位,这里是1微秒。
  类time中常用的实例方法和属性如下表所示:

方法和属性描述
time.hour、time.minute、time.second、 time.microsecond时、分、秒、微秒
time.tzinfo时区信息
time.replace([ hour[, minute[ , second[,microsecond[ ,tzinfo] ] ] ] ] )创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变)
time.isoformat()返回型如“HH:MM:SS”格式的字符串表示
time.strftime(fmt)返回自定义格式化字符串

  例如在下面的实例文件中,演示了使用类 time实现日期操作的过程。

from datetime import *
tm = time (20, 54,10)
print('tm: ',tm)
print('hour: %d,minute: %d,second: %d,microsecond: %d' % (tm.hour,tm.minute,tm.second,tm.microsecond))
tml = tm.replace(hour = 21)
print('tml:', tml)
print('isoformat():', tm.isoformat())

  执行后会输出:
在这里插入图片描述

3.类datetime

  在Python程序中,类 datetime是 date与time的结合体,包含date与time的所有功能信息。类datetime 的构造函数如下所示:

datetime.datetime(year, month, day[, hour[, minute[, second[,microsecond[,tzinfo] ] ] ] ] )

  类 datetime各个参数的含义与 date和 time构造函数中的一样,读者需要注意参数值的取值范围。
类 datetime中定义的常用类属性和方法如下表所示:

方法和属性描述
datetime.min、datetime.maxatetime所能表示的最小值与最大值
datetime.resolutiondatetime的最小单位
datetime.today()返回一个表示当前本地时间的 datetime对象
datetime.now([tz])返回一个表示当前本地时间的 datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间
datetime.utcnow()返回一个当前utc时间的 datetime对象
datetime.fromtimestamp(timestamp[,tz])根据时间戳创建一个datetime对象,参数tz指定时区信息
datetime.utcfromtimestamp(timestamp)根据时间戳创建一个 datetime对象
datetime.combine(date, time)根据date和time,创建一个datetime 对象
datetim.strptime(date_string, format)将格式字符串转换为datetime对象

  例如在下面的实例文件中,演示了使用类datetime实现日期操作的过程:

from datetime import *
import time
print('datetime.max:', datetime.max)
print('datetime.min:', datetime.min)
print('datetime.resolution:',datetime.resolution)
print('today():',datetime.today())
print('now():',datetime.now())
print('utcnowl():',datetime.utcnow())
print('fromtimestamp(tmstmp):',datetime.fromtimestamp(time.time()) )
print('utcfromtimestamp(tmstmp):',datetime.utcfromtimestamp(time.time()))

  执行后会输出:
在这里插入图片描述

  因为在类datetime中提供的实例方法与属性和date和time中的类似,所以在此不再讲解这些相似的方法与属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值