📜  datetime 日期时间 (1)

📅  最后修改于: 2023-12-03 15:00:21.394000             🧑  作者: Mango

Python 中的 datetime 日期时间模块

Python 中的 datetime 模块提供了一个类来处理日期和时间的类型。

模块的导入
import datetime
datetime 类

datetime 类是 datetime 模块的核心,它可以处理日期和时间。

创建一个 datetime 对象
# 使用当前日期和时间创建 datetime 对象
now = datetime.datetime.now()
print(now)

# 使用指定日期和时间创建 datetime 对象
dt = datetime.datetime(2021, 7, 16, 12, 0, 0)
print(dt)
datetime 对象的属性

datetime 对象有以下属性:

  • year:年份,例如:2021
  • month:月份,取值范围为 1~12
  • day:日期,取值范围为 1~31
  • hour:小时,取值范围为 0~23
  • minute:分钟,取值范围为 0~59
  • second:秒数,取值范围为 0~59
  • microsecond:微秒数,取值范围为 0~999999
dt = datetime.datetime(2021, 7, 16, 12, 0, 0)
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
datetime 对象的方法

datetime 对象有以下方法:

  • strftime(format_string):将 datetime 对象格式化为字符串
  • strptime(date_string, format_string):将字符串解析为 datetime 对象
  • timestamp():返回 POSIX 时间戳,即从 1970 年 1 月 1 日 00:00:00 UTC 到该日期的秒数
dt = datetime.datetime(2021, 7, 16, 12, 0, 0)
print(dt.strftime('%Y-%m-%d %H:%M:%S'))

str_dt = '2021-07-16 12:00:00'
dt = datetime.datetime.strptime(str_dt, '%Y-%m-%d %H:%M:%S')
print(dt)

dt = datetime.datetime(2021, 7, 16, 12, 0, 0)
print(dt.timestamp())
date 类

date 类是 datetime 模块中的另一个类,它用于处理日期。

创建一个 date 对象
# 使用当前日期创建 date 对象
today = datetime.date.today()
print(today)

# 使用指定日期创建 date 对象
d = datetime.date(2021, 7, 16)
print(d)
date 对象的属性

date 对象有以下属性:

  • year:年份,例如:2021
  • month:月份,取值范围为 1~12
  • day:日期,取值范围为 1~31
d = datetime.date(2021, 7, 16)
print(d.year)
print(d.month)
print(d.day)
date 对象的方法

date 对象有以下方法:

  • strftime(format_string):将 date 对象格式化为字符串
  • strptime(date_string, format_string):将字符串解析为 date 对象
  • day():返回该日期是该年的第几天
  • weekday():返回该日期是星期几,取值范围为 0~6,0 表示星期一,6 表示星期日
d = datetime.date(2021, 7, 16)
print(d.strftime('%Y-%m-%d'))

str_d = '2021-07-16'
d = datetime.datetime.strptime(str_d, '%Y-%m-%d').date()
print(d)
print(d.day)

d = datetime.date(2021, 7, 16)
print(d.weekday())
time 类

time 类用于处理时间。

创建一个 time 对象
t = datetime.time(12, 0, 0)
print(t)
time 对象的属性

time 对象有以下属性:

  • hour:小时,取值范围为 0~23
  • minute:分钟,取值范围为 0~59
  • second:秒数,取值范围为 0~59
  • microsecond:微秒数,取值范围为 0~999999
t = datetime.time(12, 0, 0)
print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond)
time 对象的方法

time 对象有以下方法:

  • strftime(format_string):将 time 对象格式化为字符串
t = datetime.time(12, 0, 0)
print(t.strftime('%H:%M:%S'))
timedelta 类

timedelta 类是用于计算日期和时间的差值的类。

创建一个 timedelta 对象
td = datetime.timedelta(days=1, hours=1, minutes=1, seconds=1, microseconds=1)
print(td)
timedelta 对象的操作

timedelta 对象可以进行以下操作:

  • 加、减、乘、除法
  • 支持 <、<=、==、>=、>、!= 运算
td1 = datetime.timedelta(days=1)
td2 = datetime.timedelta(hours=1)
td3 = datetime.timedelta(minutes=1)
td4 = datetime.timedelta(seconds=1)
td5 = datetime.timedelta(microseconds=1)

dt1 = datetime.datetime(2021, 7, 16, 12, 0, 0)
dt2 = dt1 + td1 + td2 + td3 + td4 + td5
print(dt2)

td = td1 - td2
print(td)
参考资料