Display timezone name in formatted datetime string
我想打印本地机器的当前日期和时间,以及时区名称。 但是,我似乎无法得到最后一点
1 2 3 4 5 6 7 | In [1]: from datetime import datetime In [2]: print(datetime.now().strftime('%d %b %Y %H:%M:%S')) 09 Apr 2019 13:23:47 In [3]: print(datetime.now().strftime('%d %b %Y %H:%M:%S %Z')) 09 Apr 2019 13:23:52 |
我原本希望看到我的PC的时区名称('CET')添加到第二个字符串。 如何得到:
1 | 09 Apr 2019 13:23:52 CET |
基本上,如果您需要系统的时区信息,请使用
1 2 3 | >>> import time >>> time.tzname ('IST', 'IST') |
在我的情况下,时区是
更新
如果你只想使用datetime模块,有一种hacky方式,但绝对不推荐。 在这个答案中提到了解决方案。 但问题是,这不是完全证据,假设你对印度和斯里兰卡等2个国家有相同的时区差异,那么它将无法识别正确的区域,因为IST和SLST都是GMT + 5:30
那是因为
如何指定时区的示例:
1 2 | from pytz import UTC datetime.now(tz=UTC).strftime("%Z") |
吐出
如果你想得到你当前的时区,那么:
1 2 | import time time.strftime("%Z", time.gmtime()) |
就我而言,它是