【问题标题】:How to add hours to a timestamp [duplicate]如何将小时数添加到时间戳[重复]
【发布时间】:2018-07-04 01:17:35
【问题描述】:

我有一个string 变量some_time = "12:30",我想给它加上2 小时,所以结果是"14:30"

我相信先把字符串变成时间格式,

temp_time = datetime.datetime.strptime(thetime, '%H:%M').time()

这样

>>>print (temp_time)
12:30:00

然后用Pytz就可以解决了。但我似乎找不到单独处理 hh:mm 的 Pytz 命令,没有 yy:dd:mm

有什么解决办法吗?

【问题讨论】:

  • 你用过timedelta 看看是否有帮助吗?
  • 我认为this 可能会回答你的问题
  • 你为什么在这里谈论pytz?您是在尝试向时间戳添加任意小时数,还是尝试做一些不同的事情,例如从 UTC 时间戳转换为某个特定时区的感知本地时间戳?
  • 无论如何,任何时区库都需要日期的原因很简单。为了从 UTC 转换为太平洋,您增加了多少小时?取决于它是否在夏令时。许多时区也在不同的历史日期(都在 tzdb 中)永久更改。即使您只想减去一个小时,如果距您所在时区的 DST 转换时间还有 30 分钟,例如,02:30 之前的一个小时是 00:30,该怎么办?如果您不希望 datetime 处理任何这些复杂性,那么您并不真正想要一个真正的时区对象,您只需要一个偏移量。
  • ...您可能还想要一个datetime.time 对象,而不是datetime.datetime(您可以调用temp_time.time() 方法来获得)。

标签: python time add


【解决方案1】:

如果您使用timedelta,您可以添加两个小时,例如:

代码:

def add_two_hours(time_string):
    the_time = dt.datetime.strptime(time_string, '%H:%M')
    new_time = the_time + dt.timedelta(hours=2)
    return new_time.strftime('%H:%M')

测试代码:

import datetime as dt

print(add_two_hours('12:30'))
print(add_two_hours('23:30'))

结果:

14:30
01:30

【讨论】:

  • 成功了,干杯!
猜你喜欢
  • 1970-01-01
  • 2017-10-22
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2023-03-31
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多