获取当前日期与时区[重复]

问题描述 投票:1回答:1

例如,以下代码段显示日期。星期一(或星期二)等。但是,在我的本地计算机上,它按照印度标准时间时区进行打印,但是在我的服务器上,它是按照UTC进行打印。

import datetime
from datetime import date
current_day_name =  (date.today().strftime("%A")).lower()
print(current_day_name)

有人可以建议我如何按照特定的时区(例如印度标准时间(或)UTC)调整此代码吗?

python-3.x datetime timezone dayofweek
1个回答
0
投票

这里是datetime库参考的引用:

由于格式取决于当前的语言环境,所以在对输出值进行假设时应格外小心。

因此datetime取决于语言环境设置。 locale参考描述了一个功能setlocale

应用程序通常从以下位置开始:

import locale
locale.setlocale(locale.LC_ALL, '')

因此,首先请确保您拥有所需的语言包(例如sudo apt install language-pack-id),然后按照文档中的说明指定语言环境。

例如,在我的计算机上运行

>>>import locale
>>>locale.getdefaultlocale()
('en_US', 'UTF-8')
>>>datetime.date.today().strftime('%A')
'Saturday'
>>> locale.setlocale(locale.LC_ALL,'hr_HR.utf8')
'hr_HR.utf8'
>>> datetime.date.today().strftime('%A')
'subota'

看来您可能还需要向tzinfo构造函数提供datetime(请参见datetime参考)。例如:

>>> datetime.datetime.now(datetime.timezone.utc).strftime('%c, %Z,%z')
'Sat 15 Feb 2020 01:07:16 PM , UTC,+0000'
>>> datetime.datetime.now(datetime.timezone(
    datetime.timedelta(hours=1),'CET')).strftime('%c, %Z,%z')
'Sat 15 Feb 2020 02:07:28 PM , CET,+0100'
© www.soinside.com 2019 - 2024. All rights reserved.