Python中的datetime模块讲解与示例
Python 中的日期和时间操作是使用名为datetime的模块完成的。它的类具有处理日期、时间、时区和时差的功能。它是一个内置模块,因此不必专门安装。
datetime 模块不仅使我们能够进行日期和时间计算,而且还有助于通过高效的属性提取来格式化输出。
A.datetime中的常量
datetime模块包含两个常量:
MINYEAR:它是日期或日期时间对象的最小有效年份数。它的值为 1。
importdatetime
print(datetime.MINYEAR)
#output:1
MAXYEAR:它是日期或日期时间对象的最大有效年份数。它的值为 9999。
importdatetime
print(datetime.MAXYEAR)
#output:9999
B.datetime中的类
此模块中有六个可用的类允许操作日期和时间:
1、date类
此类的对象表示日历中的日期(格式:年、月、日)。用于该格式的日历当前是公历。此类的构造函数需要所有三个参数:year、month和day。
语法:
classdatetime.date(year,month,day)
参数应参考如下设置:
MINYEAR<=year<=MAXYEAR
1<=month<=12
1<=day<=给定月份和年份中的天数
如果参数的值超出上述范围,则会指出ValueError,如果类型不是整数,则会引发 TypeError。
例子:
MINYEAR<=year<=MAXYEAR
1<=month<=12
1<=day<=给定月份和年份中的天数
简单的示例:
fromdatetimeimportdate
date0=date(2021,6,6)
print("简单的示例:",date0)
#output:简单的示例:2021-06-06
date类具有以下类方法和属性:
fromdatetimeimportdate
importtime
##today()方法
datetoday=date.today()
print("今天是:",datetoday)
#今天是:2021-06-07
##fromtimestamp()方法
date1=date.fromtimestamp(time.time())
print("给定时间戳的日期是:",date1)
#给定时间戳的日期是:2021-06-07
##fromordinal()方法
ordinal0=date.fromordinal(1000)
print("从零开始的第1000天是:",ordinal0)
#从零开始的第1000天是:0003-09-27
##fromisoformat()方法
dateiso=date.fromisoformat('2019-12-04')
print("文本中的日期是:",dateiso)
#文本中的日期是:2019-12-04
##fromisocalendar(year,week,day)方法
ii=date.fromisocalendar(2010,4,3)
print("由年、周和日指定的日期是:",ii)
#由年、周和日指定的日期是:2010-01-27
date类还具有实例方法 实例方法是使用类的实例的方法,而类方法只能与类名一起使用。下面给出了date类的实例方法:
fromdatetimeimportdate
##replace()实例方法
x=date(2019,9,25)
x.replace(year=2010,day=15)
print("替换后的日期是:",x)
##timetuple实例方法
t=x.timetuple()
##返回该日期的信息信息
print("返回的日期信息是:",t)
##toordinal()实例方法
d=x.toordinal()
print("给定日期的公历序数是:",d)
##weekday()实例方法
print("给定日期是星期几?",x,"是:",x.weekday())
##isoweekday()实例方法
print("给定日期是星期几?",x,"在ISO日期是:",x.isoweekday())
##isocalendar()实例方法
print("在公历日期中,",x,"是:",x.isocalendar())
##下面的函数转换日期字符串
##isoformat实例方法
s=x.isoformat()
print("给定日期转化成ISO8601格式是:",s)
##str实例方法
print("给定日期转化为文本是:",str(x))
##ctime()实例方法
print("给定日期的完整字符串表示,",x,"是:",x.ctime())
##strftime()实例方法
xyear=x.strftime("%Y")
xdate_time=x.strftime("%Y/%m/%d,%H:%M:%S")
print("给定日期使用format格式化为文本")
print(xyear)
print(xdate_time)
##format()实例方法
st=format(x)
print("给定日期转为文本是:",st)
##output:
##替换后的日期是:2019-09-25
##返回的日期信息是:time.struct_time(tm_year=2019,tm_mon=9,tm_mday=25,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=2,tm_yday=268,tm_isdst=-1)
##给定日期的公历序数是:737327
##给定日期是星期几?2019-09-25是:2
##给定日期是星期几?2019-09-25在ISO日期是:3
##在公历日期中,2019-09-25是:(2019,39,3)
##给定日期转化成ISO8601格式是:2019-09-25
##给定日期转化为文本是:2019-09-25
##给定日期的完整字符串表示,2019-09-25是:WedSep2500:00:002019
##给定日期使用format格式化为文本
##2019
##2019/09/25,00:00:00
##给定日期转为文本是:2019-09-25
2. Time 类
时间类的对象表示本地时间,可以通过tzinfo对象进行调整
语法:
classdatetime.time(hour,minute,second,microsecond,tzinfo,*,fold)
示例:
fromdatetimeimporttime
time0=time(13,24,34)
print("给定时间示例:",time0)
今天和大家初步学习了Python标准库中datetime模块,大家都学会了吗?