【问题标题】:Add seconds and microseconds to datetime if they are not set如果未设置,则将秒和微秒添加到日期时间
【发布时间】:2021-10-27 14:02:16
【问题描述】:

我有以下日期时间:

dt = datetime.datetime(2021, 10, 15, 0, 0, tzinfo=datetime.timezone.utc)

如何使用 python 代码添加秒和微发送?所以它具有相同的结构:

datetime.datetime(2021, 10, 18, 15, 31, 21, 436248, tzinfo=datetime.timezone.utc)

【问题讨论】:

  • 您要添加timedelta吗?或者您在寻找datetime.replace?包括你尝试过的东西/问题的具体错误会澄清我认为。
  • 另外,我不清楚“如果没有设置”是什么意思 - 如果故意将它们设置为零怎么办?

标签: python datetime timedelta


【解决方案1】:

您可以为此使用 timedelta。例如

from datetime import timedelta
dt = datetime.datetime(2021, 10, 15, 0, 0, tzinfo=datetime.timezone.utc)

if not dt.second:
    dt = dt + timedelta(seconds=21)
if not dt.microsecond:
    dt = dt + timedelta(microseconds=23)

【讨论】:

  • 如何检查它们是否尚未设置?我不想覆盖有规格的日期时间
  • @sg_sg94 更新了答案。如果对你有帮助,请采纳。谢谢
  • 这并没有解决。在此之后仍然没有填写秒数..
  • 你能把日期时间值贴在这里吗?确切的一个
  • 通过给 1 解决了我的问题
【解决方案2】:

我不太确定你想做什么,但如果你想立即获得时间,你可以用 datetime 来做这样的事情:

from datetime import datetime

#get seconds/microseconds
now = datetime.now()
seconds = int(now.strftime("%S"))
microseconds = int(now.strftime("%f"))


datetime.datetime(2021, 10, 15, 31, seconds, microseconds, tzinfo=datetime.timezone.utc)

【讨论】:

    猜你喜欢
    • 2023-01-19
    • 2022-06-13
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多