📅  最后修改于: 2023-12-03 15:08:56.492000             🧑  作者: Mango
在 Python 编程中,常常需要对日期和时间进行操作。有时候,我们需要从时间中减去一定的分钟数。下面是一些实现方式。
datetime.timedelta 可以用来表示两个日期或时间之间的差值。我们可以创建一个 timedelta 对象,然后将其从 datetime 对象中减去,从而得到一个新的 datetime 对象,表示减去了一定分钟数之后的时间。
import datetime
# 创建一个 datetime 对象
dt = datetime.datetime(2022, 1, 1, 10, 30)
# 创建一个 timedelta 对象
minutes = datetime.timedelta(minutes=30)
# 从 datetime 对象中减去 timedelta 对象,得到一个新的 datetime 对象
new_dt = dt - minutes
# 输出新的 datetime 对象
print(new_dt)
输出:
2022-01-01 10:00:00
dateutil.relativedelta 是一个 Python 库,它提供了一个灵活的 API,可以用来对日期和时间进行各种复杂的计算。
我们可以使用 relativedelta 对象,将其从 datetime 对象中减去,从而得到一个新的 datetime 对象,表示减去了一定分钟数之后的时间。
import datetime
import dateutil.relativedelta
# 创建一个 datetime 对象
dt = datetime.datetime(2022, 1, 1, 10, 30)
# 创建一个 relativedelta 对象
minutes = dateutil.relativedelta.relativedelta(minutes=30)
# 从 datetime 对象中减去 relativedelta 对象,得到一个新的 datetime 对象
new_dt = dt - minutes
# 输出新的 datetime 对象
print(new_dt)
输出:
2022-01-01 10:00:00
在 Python 中,时间可以用 Unix 时间戳表示。Unix 时间戳是自 1970 年 1 月 1 日零时零分零秒以来的秒数。
我们可以将 datetime 对象转换为时间戳,然后减去一定的分钟数(以秒为单位),然后再将其转换回 datetime 对象。
import datetime
# 创建一个 datetime 对象
dt = datetime.datetime(2022, 1, 1, 10, 30)
# 将 datetime 对象转换为时间戳
timestamp = int(dt.timestamp())
# 减去一定的分钟数(以秒为单位)
new_timestamp = timestamp - 30 * 60
# 将时间戳转换回 datetime 对象
new_dt = datetime.datetime.fromtimestamp(new_timestamp)
# 输出新的 datetime 对象
print(new_dt)
输出:
2022-01-01 10:00:00
以上就是从时间中减去一定分钟数的几种方法,每种方法都有其优点和缺点,根据具体情况选择合适的方法即可。