在外壳中:
$ date
Do 27. Jun 15:13:13 CEST 2019
Run Code Online (Sandbox Code Playgroud)
在Python中:
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2019, 6, 27, 15, 14, 51, 314560)
>>> a = datetime.now()
>>> a.strftime("%Y%m%d")
'20190627'
Run Code Online (Sandbox Code Playgroud)
获得与完全相同的输出date(包括区域设置的评估)所需的格式说明符是什么?
看来您需要使用区域设置模块
\n\n在 shell 中玩:
\n\n$ date\nThu Jun 27 10:01:03 EDT 2019\n$ LC_ALL=fr_FR.UTF-8 date\njeu. juin 27 10:01:12 EDT 2019\nRun Code Online (Sandbox Code Playgroud)\n\n在Python中
\n\n$ LC_ALL=fr_FR.UTF-8 python\nPython 2.7.5 (default, Jun 20 2019, 20:27:34) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2\nType "help", "copyright", "credits" or "license" for more information.\n>>> from datetime import datetime\n>>> datetime.now().strftime("%c")\n\'Thu Jun 27 10:03:13 2019\'\nRun Code Online (Sandbox Code Playgroud)\n\n嗯,我希望 python 尊重我的环境。让我们强行解决这个问题:
\n\n>>> import locale\n>>> import os\n>>> locale.setlocale(locale.LC_ALL, os.environ[\'LC_ALL\'])\n\'fr_FR.UTF-8\'\n>>> datetime.now().strftime("%c")\n\'jeu. 27 juin 2019 10:04:48 \'\nRun Code Online (Sandbox Code Playgroud)\n\n啊。
\n\n进一步阅读语言环境文档,我明白了
\n\n\n\n最初,当程序启动时,区域设置是 C 区域设置,无论用户\xe2\x80\x99s 的首选区域设置是什么。程序必须通过调用 明确表示它需要用户\xe2\x80\x99s 的首选区域设置
\nsetlocale(LC_ALL, \'\')。
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |