Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python记录器以IS8601格式输出日期_Python_Python 2.7_Iso8601 - Fatal编程技术网

Python记录器以IS8601格式输出日期

Python记录器以IS8601格式输出日期,python,python-2.7,iso8601,Python,Python 2.7,Iso8601,有没有办法使Python记录器输出日期为ISO8601格式 我的记录器是这样设置的 logging.basicConfig( format="%(message)s - %(asctime)s) 从Python文档(位于此处:)可以看到以下内容: 日期/时间显示的默认格式(如上所示)为ISO8601。如果 您需要更多地控制日期/时间的格式,请提供 datefmt参数到basicConfig,如本例所示: 唯一的问题是日期输出不是ISO8601格式。上述格式化程序输出的日期为:

有没有办法使Python记录器输出日期为ISO8601格式

我的记录器是这样设置的

logging.basicConfig(
    format="%(message)s - %(asctime)s)
从Python文档(位于此处:)可以看到以下内容:

日期/时间显示的默认格式(如上所示)为ISO8601。如果 您需要更多地控制日期/时间的格式,请提供 datefmt参数到basicConfig,如本例所示:

唯一的问题是日期输出不是ISO8601格式。上述格式化程序输出的日期为:

2018-06-15 11:07:41454

这不是此处定义的ISO8601格式:

以正确的格式获取日期的最简单方法是什么?这可以开箱即用吗?或者我需要导入一个包来完成吗


我尝试添加一个日期格式化程序,例如
datefmt=“%Y-%m-%dT%H:%m:%S.%f%Z”
,但一些格式化字符未被识别,即
%f
%Z
给出了时区的文本描述,而不是数字偏移量。

这在大多数情况下对我有效:

logging.basicConfig(
    format="%(asctime)s %(message)s",
    datefmt="%Y-%m-%dT%H:%M:%S%z"
)
输出如下所示:

2019-11-09T01:18:13-0800此处记录了一些内容


使用Python3.8进行测试,不确定较旧的版本

我认为您可以基于这个答案“一些格式字符未被识别。”-哪个?示例更新。我在那里有%f,但未被识别。并且%Z给出的是文本区域描述,而不是数字偏移量。如何将毫秒部分添加到时间戳,即“%f”?当我尝试时,日志记录无法识别%f格式化程序。在毫秒内,您可以使用
datefmt
default\u msec\u格式
。但是,我认为最好将
loggin.formatter子类化。请参阅