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