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

Python datetime库中日期时间函数的详细使用

发布时间:2023-06-12 14:57:11

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 库中常用的日期时间函数的使用,包括获取当前时间、日期时间的格式化、日期时间的计算、字符串转为日期时间对象和时区处理。通过这些函数的使用,我们可以轻松地处理日期时间的相关操作。