Python datetime库中日期时间函数的详细使用
Python 是一门功能强大的编程语言,其datetime库可以方便我们对日期时间进行各种操作。本文将介绍 datetime 库中常用的日期时间函数的用法。
1.获取当前时间
通过 datetime 库的 datetime 类可以获取当前日期时间。其构造函数如下:
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
其中,year、month、day、hour、minute、second、microsecond、tzinfo 都是可选参数。
示例代码:
import datetime
now = datetime.datetime.now()
print('当前时间:', now)
输出结果:
当前时间: 2021-12-06 13:41:42.119451
2.日期时间的格式化
datetime 对象中的日期时间字符串可以通过 strftime() 方法格式化为指定格式的字符串。它接受一个格式化字符串作为参数,其中可以包含以下格式符号:
符号 | 说明
--- | ---
%Y | 四位数的年份,如 2021
%y | 两位数的年份,如 21
%m | 月份(01-12),如 06
%B | 月份的名称,如 June
%b | 月份的缩写,如 Jun
%d | 日期(01-31),如 03
%A | 星期的名称,如 Sunday
%a | 星期的缩写,如 Sun
%H | 小时(00-23),如 14
%I | 小时(00-12),如 02
%p | 上午或下午,如 AM、PM
%M | 分钟(00-59),如 26
%S | 秒(00-59),如 38
示例代码:
import datetime
now = datetime.datetime.now()
print('当前时间:', now)
# 格式化为年月日时分秒
str_time = now.strftime('%Y-%m-%d %H:%M:%S')
print('当前时间字符串:', str_time)
输出结果:
当前时间: 2021-12-06 13:46:14.564516 当前时间字符串: 2021-12-06 13:46:14
3.日期时间的计算
datetime 对象可以进行日期时间的加减计算。
加减单位 | 对应参数
--- | ---
秒 | seconds
分 | minutes
小时 | hours
天 | days
周 | weeks
月 | months
年 | years
示例代码:
import datetime
today = datetime.datetime.now()
# 昨天
yesterday = today - datetime.timedelta(days=1)
print('昨天:', yesterday.strftime('%Y-%m-%d'))
# 一周前
a_week_ago = today - datetime.timedelta(weeks=1)
print('一周前:', a_week_ago.strftime('%Y-%m-%d'))
# 一个月后
a_month_later = today + datetime.timedelta(months=1)
print('一个月后:', a_month_later.strftime('%Y-%m-%d'))
输出结果:
昨天: 2021-12-05 一周前: 2021-11-29 一个月后: 2022-01-06
4.字符串转为日期时间对象
可以使用 strptime() 方法将日期时间字符串转换为 datetime 对象。方法接受两个参数, 个参数是日期时间字符串,第二个参数是字符串对应的格式化模板。
示例代码:
import datetime
str_time = '2021-12-06 13:54:00'
time_obj = datetime.datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
print('字符串转为日期时间对象:', time_obj)
输出结果:
字符串转为日期时间对象: 2021-12-06 13:54:00
5.时区处理
datetime 库提供 tzinfo 类,可以处理时区。
示例代码:
import datetime
import pytz
# 创建时区对象
tz = pytz.timezone('Asia/Shanghai')
# 获取当前时间
now = datetime.datetime.now(tz)
print('当前时间', now)
# 转换成 UTC 时间
utc_now = now.astimezone(pytz.utc)
print('UTC 时间:', utc_now)
# 转换成纽约时间
ny_now = now.astimezone(pytz.timezone('America/New_York'))
print('纽约时间:', ny_now)
输出结果:
当前时间 2021-12-06 13:58:49.361000+08:00 UTC 时间: 2021-12-06 05:58:49.361000+00:00 纽约时间: 2021-12-05 16:58:49.361000-05:00
总结
本文介绍了 datetime 库中常用的日期时间函数的使用,包括获取当前时间、日期时间的格式化、日期时间的计算、字符串转为日期时间对象和时区处理。通过这些函数的使用,我们可以轻松地处理日期时间的相关操作。
