【问题标题】:Python how to make datetime update timePython如何使日期时间更新时间
【发布时间】:2021-11-27 01:09:21
【问题描述】:

我在 pytz 中使用 datetime,但我没时间更新。

format = "[%B %d %H:%M]"
now_utc = datetime.now(timezone('UTC'))
greece = now_utc.astimezone(timezone('Europe/Athens'))
date = greece.strftime(format)

例如我在 11:30 打印(日期),它保持这样。 有什么想法吗?

【问题讨论】:

  • datetime.now() 这样的函数有点奇怪,因为每次调用它们时它们都会给出不同的结果,这与常规函数不同,常规函数的返回值仅取决于您传递给它们的输入。现在,在与现实世界交互时,怪异是有用且必要的:不仅适用于日期和时间,还适用于可用内存、日志文件的大小等。但是如果您希望程序中具有这种不确定性,您有通过调用函数来明确要求它,而不是让变量在你背后改变它的值。

标签: python datetime pytz


【解决方案1】:

事实上,date 在整个运行时保持不变。目前没有什么可以更新的。如果您想定期检查和打印时间,您需要定义一个函数并让您的脚本在该时间后调用它。

import time
fmt = "[%B %d %H:%M]"

def print_now()
     now_utc = datetime.now(timezone('UTC'))
     greece = now_utc.astimezone(timezone('Europe/Athens'))
     date = greece.strftime(fmt)
     print(date)

while True:
     print_now()
     time.sleep(60)  # argument is time to wait in seconds

只要TrueTrue(总是如此),循环就会继续,除非你定义了一些条件来强制它在某个点结束。当然,您可以在 while 循环中包含 print_now() 函数内容,但将其放在自己的函数中会更简洁一些。

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2019-03-04
    • 2011-09-06
    • 2021-10-04
    相关资源
    最近更新 更多