欢迎访问宙启技术站
智能推送

如何使用Python标准库中的日期和时间函数

发布时间:2023-05-30 03:43:09

Python是一门拥有丰富标准库的语言,包括日期及时间函数。Python中的日期和时间处理主要使用datetime模块。

在使用datetime模块之前,需要先导入该模块。

import datetime

## 获取当前日期和时间

使用datetime模块可以轻松地获取当前日期和时间。使用datetime中的now()函数可以获取当前日期和时间的数据类型为datetime。

now = datetime.datetime.now()
print(now)
# 输出结果: 2022-08-19 14:32:15.583943

## 标准时间格式转换

在Python中使用strftime方法,即string format time,可以将datetime格式的时间转化为字符串格式。strftime()方法需要一个格式化字符串参数,该字符串指定日期的输出格式。例如,下面的代码将打印当前日期的字符串格式,格式为“%Y-%m-%d %H:%M:%S”。

now = datetime.datetime.now()
now_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(now_str)
# 输出结果: 2022-08-19 14:46:28

## 字符串时间格式转换

将日期字符串转换为datetime对象需要使用datetime.strptime()函数。该函数需要传入两个参数:日期字符串和字符串的格式化说明符。以将形如‘19/08/2022 14:25:19’的字符串转换为datetime对象为例。

str = '19/08/2022 14:25:19'
dt = datetime.datetime.strptime(str, '%d/%m/%Y %H:%M:%S')
print(dt)
# 输出结果: 2022-08-19 14:25:19

## 日期偏移

datetime.timedelta()函数可以在日期上加上或减去一个时间段。下面的代码演示了将当前日期加上一天,两天和三天。

now = datetime.datetime.now()

one_day_later = now + datetime.timedelta(days=1)
print(one_day_later)

two_days_later = now + datetime.timedelta(days=2)
print(two_days_later)

three_days_later = now + datetime.timedelta(days=3)
print(three_days_later)

输出结果为:

2022-08-20 09:45:48.214191
2022-08-21 09:45:48.214191
2022-08-22 09:45:48.214191

另外,datetime.timedelta也允许使用weeks、hours、minutes、seconds和microseconds等更精确的时间单位。

one_hour_later = now + datetime.timedelta(hours=1)
print(one_hour_later)

five_minutes_later = now + datetime.timedelta(minutes=5)
print(five_minutes_later)

ten_seconds_later = now + datetime.timedelta(seconds=10)
print(ten_seconds_later)

输出结果为:

2022-08-19 10:45:48.214191
2022-08-19 09:50:48.214191
2022-08-19 09:46:04.214191

## 替换和调整日期时间

dateutil提供了dateutil.parser.parse()方法,日期可以从字符串中自动解析。它也提供了许多其他的功能用于修改、修剪或扩展日期时间。

例如,我们可以使用replace()函数来更改日期的一个或多个属性。

now = datetime.datetime.now()

new_date = now.replace(year=2023, month=9, day=15)
print(new_date)

输出结果为:2023-09-15 09:57:13.323048

还可以将更改其他属性,例如小时、分钟、秒或微秒。

new_date = now.replace(hour=12, minute=30, second=45)
print(new_date)

输出结果为:2022-08-19 12:30:45.323048

## 星期几计算

datetime.date.weekday()和datetime.date.isoweekday()方法可以根据日期计算这一天是星期几。每个方法都返回数字来表示星期几,其中0表示星期一,1表示星期二,以此类推。

now = datetime.datetime.now()

weekday = now.weekday()
print('Weekday of today:', weekday)

isoweekday = now.isoweekday()
print('ISO Weekday of today:', isoweekday)

输出结果为:

Weekday of today: 4
ISO Weekday of today: 5

## 时间差计算

计算两个日期之间的时间差,可以使用datetime.datetime中的sub函数。

d1 = datetime.datetime(2020, 4, 30)
d2 = datetime.datetime(2020, 5, 3)

delta = d2 - d1
print(delta.days)

输出结果为2。

## 总结

在Python中使用datetime模块可以轻松地处理日期和时间。通过熟练掌握上述日期和时间函数,可以有效地管理和调整日期时间,提高工作效率。使用日期和时间处理模块,可以避免手动计算日期、时间的错误和重复。在开发和应用程序中,深入掌握日期和时间函数的特性也是必不可少的技能之一。