Python 中的日期和时间操作是使用名为datetime的模块完成的。它的类具有处理日期、时间、时区和时差的功能。它是一个内置模块,因此不必专门安装。
datetime 模块不仅使我们能够进行日期和时间计算,而且还有助于通过高效的属性提取来格式化输出。
datetime模块包含两个常量:
MINYEAR:它是日期或日期时间对象的最小有效年份数。它的值为 1。
import datetime
print(datetime.MINYEAR)
# output: 1
MAXYEAR:它是日期或日期时间对象的最大有效年份数。它的值为 9999。
import datetime
print(datetime.MAXYEAR)
# output: 9999
此模块中有六个可用的类允许操作日期和时间:
此类的对象表示日历中的日期(格式:年、月、日)。用于该格式的日历当前是公历。此类的构造函数需要所有三个参数:year、month和day。
语法:
class datetime.date(year, month, day)
参数应参考如下设置:
MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= 给定月份和年份中的天数
如果参数的值超出上述范围,则会指出ValueError,如果类型不是整数,则会引发 TypeError。
例子:
MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= 给定月份和年份中的天数
简单的示例:
from datetime import date
date0 = date ( 2021 , 6 , 6 )
print ( "简单的示例: " , date0 )
# output:简单的示例: 2021-06-06
date类具有以下类方法和属性:
from datetime import date
import time
## 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类的实例方法:
from datetime import date
## 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("给定日期转化成 ISO 8601 格式是:", 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)
## 给定日期转化成 ISO 8601 格式是: 2019-09-25
## 给定日期转化为文本是: 2019-09-25
## 给定日期的完整字符串表示, 2019-09-25 是: Wed Sep 25 00:00:00 2019
## 给定日期使用 format 格式化为文本
## 2019
## 2019/09/25, 00:00:00
## 给定日期转为文本是: 2019-09-25
时间类的对象表示本地时间,可以通过tzinfo对象进行调整
语法:
class datetime.time(hour, minute, second, microsecond, tzinfo, *, fold)
示例:
from datetime import time
time0 = time(13, 24,34)
print("给定时间示例:", time0)
今天和大家初步学习了Python标准库中datetime模块,大家都学会了吗?