Loading...
墨滴

Donsole

2021/06/14  阅读:30  主题:前端之巅同款

【Python标准库】datetime 模块讲解与示例

Python中的datetime模块讲解与示例

Python 中的日期和时间操作是使用名为datetime的模块完成的。它的类具有处理日期、时间、时区和时差的功能。它是一个内置模块,因此不必专门安装。

datetime 模块不仅使我们能够进行日期和时间计算,而且还有助于通过高效的属性提取来格式化输出。

A.datetime中的常量

datetime模块包含两个常量:

MINYEAR:它是日期或日期时间对象的最小有效年份数。它的值为 1。

import datetime

print(datetime.MINYEAR)
# output: 1

MAXYEAR:它是日期或日期时间对象的最大有效年份数。它的值为 9999。

import datetime

print(datetime.MAXYEAR)
# output: 9999

B.datetime中的类

此模块中有六个可用的类允许操作日期和时间:

1、date类

此类的对象表示日历中的日期(格式:年、月、日)。用于该格式的日历当前是公历。此类的构造函数需要所有三个参数: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(2019925)
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

2. Time 类

时间类的对象表示本地时间,可以通过tzinfo对象进行调整

语法:

class datetime.time(hour, minute, second, microsecond, tzinfo, *, fold)

示例:

from datetime import time
 
time0 = time(1324,34
print("给定时间示例:", time0)

今天和大家初步学习了Python标准库中datetime模块,大家都学会了吗?

Donsole

2021/06/14  阅读:30  主题:前端之巅同款

作者介绍

Donsole