宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

本文将从多个方面对Python日期加减做详细的阐述,包括时间戳(timestamp)和日期(date)、时间差(timedelta)、日期格式化等。下面,让我们一步步来进行讲解。

一、时间戳与日期的转换

Python 中,时间戳(timestamp)是以 1970 年 1 月 1 日 00:00:00 UTC(即协调世界时)为起点,记录秒数的浮点数。而日期(date)则是一个包含年、月、日的对象。接下来,让我们来看看这两者之间如何进行转换。

1. 时间戳转日期:

import time

# 时间戳转日期
timestamp = 1609459200  # 2021年1月1日 00:00:00
date = time.localtime(timestamp)
formatted_date = time.strftime("%Y-%m-%d %H:%M:%S", date)

print(formatted_date)
# 输出:2021-01-01 00:00:00

2. 日期转时间戳:

import time

# 日期转时间戳
date_str = '2021-01-01 00:00:00'
timestamp = time.mktime(time.strptime(date_str, "%Y-%m-%d %H:%M:%S"))

print(timestamp)
# 输出:1609459200.0

二、时间差的计算

Python 中可以使用 datetime 模块的 timedelta 类来计算时间差,包括天数、小时数、分钟数、秒数等。

1. 计算两个日期之间的天数:

from datetime import date

# 计算两个日期之间的天数
start_date = date(2021, 1, 1)
end_date = date(2021, 2, 1)
delta = end_date - start_date

print(delta.days)
# 输出:31

2. 计算两个日期之间的小时数、分钟数、秒数:

from datetime import datetime

# 计算两个日期之间的小时数、分钟数、秒数
start_datetime = datetime(2021, 1, 1, 0, 0, 0)
end_datetime = datetime(2021, 1, 2, 12, 30, 45)
delta = end_datetime - start_datetime

print(delta.seconds // 3600)  # 小时数
# 输出:36

print(delta.seconds % 3600 // 60)  # 分钟数
# 输出:30

print(delta.seconds % 60)  # 秒数
# 输出:45

三、日期格式化

在 Python 中,可以使用 datetime 模块的 strftime 方法对日期进行格式化。

1. 格式化为年月日:

from datetime import datetime

# 格式化为年月日
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d")

print(formatted_date)
# 输出:2022-08-12

2. 格式化为中文格式:

from datetime import datetime

# 格式化为中文格式
now = datetime.now()
formatted_date = now.strftime("%Y年%m月%d日 %H:%M:%S")

print(formatted_date)
# 输出:2022年08月12日 12:34:56

四、日期加减

在 Python 中,可以使用 timedelta 类来对日期进行加减操作。

1. 天数加减:

from datetime import date, timedelta

# 天数加减
d = date.today() + timedelta(days=7)

print(d)
# 输出:2022-08-19

2. 小时数加减:

from datetime import datetime, timedelta

# 小时数加减
now = datetime.now()
d = now + timedelta(hours=12)

print(d)
# 输出:2022-08-13 00:34:56.123456

3. 多个时间差加减:

from datetime import datetime, timedelta

# 多个时间差加减
now = datetime.now()
delta = timedelta(days=1, hours=2, minutes=30)
d = now + delta

print(d)
# 输出:2022-08-13 13:05:43.123456

以上就是 Python 日期加减的详细讲解,希望本文对大家有所帮助。