如何在python中将小时添加到当前时间

Posted

技术标签:

【中文标题】如何在python中将小时添加到当前时间【英文标题】:How to add hours to current time in python 【发布时间】:2012-11-21 00:48:53 【问题描述】:

我可以得到当前时间如下:

from datetime import datetime
str(datetime.now())[11:19]

结果

'19:43:20'

现在,我正在尝试将9 hours 添加到上述时间,如何在 Python 中将小时添加到当前时间?

【问题讨论】:

要以这种方式格式化当前时间,请查看datetime.now().strftime('%H:%M:%S') 【参考方案1】:

这适用于我使用 seconds 而不是小时,还可以使用函数转换回 UTC 时间。

from datetime import timezone, datetime, timedelta 
import datetime


def utc_converter(dt):
    dt = datetime.datetime.now(timezone.utc)
    utc_time = dt.replace(tzinfo=timezone.utc)
    utc_timestamp = utc_time.timestamp()
    return utc_timestamp



# create start and end timestamps
_now = datetime.datetime.now()
str_start = str(utc_converter(_now))
_end = _now + timedelta(seconds=10)
str_end = str(utc_converter(_end))

【讨论】:

utc_time = dt.replace(tzinfo=timezone.utc) 是不必要的 - dt 的 tzinfo 已经正确设置为 timezone.utc 此外,您应该导入模块或形成它的特定类,而不是两者。 您是否有机会通过发布参考我的答案的答案给我一个提示?我可以使用它,任何帮助都不会在这里得到很多智慧。 你的意思是进口还是tzinfo?关于导入,在您的代码 sn-p 的第一行中,您从模块中导入特定的类,在第二行中,您导入整个模块(其中当然包括类)。两种方法都可以,只使用其中一种来提高可读性;-)【参考方案2】:

导入datetime 和timedelta:

>>> from datetime import datetime, timedelta
>>> str(datetime.now() + timedelta(hours=9))[11:19]
'01:41:44'

但更好的方法是:

>>> (datetime.now() + timedelta(hours=9)).strftime('%H:%M:%S')
'01:42:05'

您可以参考strptime and strftime behavior 以更好地了解python如何处理日期和时间字段

【讨论】:

python 文档的链接让您深入了解解析和格式化日期/时间【参考方案3】:
from datetime import datetime, timedelta

nine_hours_from_now = datetime.now() + timedelta(hours=9)
#datetime.datetime(2012, 12, 3, 23, 24, 31, 774118)

然后使用字符串格式化获取相关片段:

>>> ':%H:%M:%S'.format(nine_hours_from_now)
'23:24:31'

如果您只是格式化日期时间,那么您可以使用:

>>> format(nine_hours_from_now, '%H:%M:%S')
'23:24:31'

或者,正如@eumiro 在 cmets 中指出的那样 - strftime

【讨论】:

为什么这不是最佳答案?有没有副作用?未报告的错误? @Braza OP 只是没有选择接受它。没有副作用或错误。 @JonClements 谢谢你的回复:)。我测试了它并确认了。 这不是 DST 安全的。 问题询问如何小时,但小时可以通过两种方式完成:1)使用减法运算符(- ) 而不是加法运算符 (+);根据文档“timedelta 对象支持日期和datetime 对象的某些加法和减法” 2)将负值传递给任何timedelta 参数;根据the documentation,“参数可能是整数、长整数或浮点数,可能是正数或负数。”

以上是关于如何在python中将小时添加到当前时间的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本 - 将 n 小时添加到当前时间和日期

如何在 SQL Server 中将纪元时间与 24 小时前进行比较?

将 2 个月添加到当前时间戳

如何将可配置分钟添加到其中包含当前时间的变量[重复]

在保存以将该模型与当前用户相关联之前,在 Python 中将当前用户的 id 传递给另一个模型

如何在 swift 3 中将 MKPolylines 添加到 MKSnapShotter?