📜  timedelta 浮动 - Python (1)

📅  最后修改于: 2023-12-03 15:20:37.993000             🧑  作者: Mango

timedelta浮动 - Python

在 Python 中,timedelta 是一个用于处理时间差的类。它允许我们在日期之间执行基本的算术运算。timedelta 对象可以用于将日期向前或向后移动一定量的时间,或者计算两个日期之间的时间差。

创建 timedelta 对象

可以使用以下方法来创建 timedelta 对象:

import datetime

# 创建一个时间差为一天的timedelta对象
one_day = datetime.timedelta(days=1)

# 创建一个时间差为一小时的timedelta对象
one_hour = datetime.timedelta(hours=1)

# 创建一个时间差为一分钟的timedelta对象
one_minute = datetime.timedelta(minutes=1)

# 创建一个时间差为一秒钟的timedelta对象
one_second = datetime.timedelta(seconds=1)
运算符

timedelta 对象支持以下运算符:

  • 加法 (+)
  • 减法 (-)
  • 乘法 (*)
  • 除法 (/)
  • 取模 (%)
  • 正号 (+)
  • 负号 (-)
  • 等于 (==)
  • 不等于 (!=)
  • 小于 (<)
  • 小于等于 (<=)
  • 大于 (>)
  • 大于等于 (>=)
# 创建两个日期
d1 = datetime.datetime(2021, 9, 1)
d2 = datetime.datetime(2021, 10, 1)

# 计算两个日期之间的时间差
diff = d2 - d1
print(diff)  # 输出: 30 days, 0:00:00

# 将日期向前移动一天
new_date = d1 - datetime.timedelta(days=1)
print(new_date)  # 输出: 2021-08-31 00:00:00
示例
import datetime

# 设置当前时间
now = datetime.datetime.now()

# 计算未来的日期
future_date = now + datetime.timedelta(days=365)

print("当前时间: ", now)
print("未来时间: ", future_date)

# 计算两个日期之间的时间差
delta = future_date - now

print("时间差为: ", delta)
print("总共的秒数: ", delta.total_seconds())

# 另一种方式获取当前时间
now = datetime.datetime.utcnow()

# 计算过去的时间
past_date = now - datetime.timedelta(days=365)

print("当前时间(UTC): ", now)
print("过去时间(UTC): ", past_date)

# 计算两个日期之间的时间差
delta = now - past_date

print("时间差为: ", delta)
print("总共的秒数: ", delta.total_seconds())

输出结果为:

当前时间: 2021-09-29 17:43:56.570909
未来时间: 2022-09-29 17:43:56.570909
时间差为: 365 days, 0:00:00
总共的秒数: 31536000.0
当前时间(UTC): 2021-09-29 09:43:56.572656
过去时间(UTC): 2020-09-29 09:43:56.572656
时间差为: 365 days, 0:00:00.000003
总共的秒数: 31536000.000003
总结

在 Python 中,timedelta 是一个十分强大的类,它可以让我们轻松地处理日期和时间差。其中的重要属性和方法包括:

  • days:返回时间差的天数
  • seconds:返回时间差的秒数
  • total_seconds():计算时间差的总秒数
  • __str__():返回可读性好的字符串表示
  • 运算符支持:加减乘除、等于、不等于、小于等于、大于等于等运算符。