例如,以下代码段显示日期。星期一(或星期二)等。但是,在我的本地计算机上,它按照印度标准时间时区进行打印,但是在我的服务器上,它是按照UTC进行打印。
import datetime
from datetime import date
current_day_name = (date.today().strftime("%A")).lower()
print(current_day_name)
有人可以建议我如何按照特定的时区(例如印度标准时间(或)UTC)调整此代码吗?
这里是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'