logging.basicConfig
的文档说:
THISSHOULDBEIGNORED_RESULTAFTERSUBSTITUTIONWORKS<div><ac>another thing</another><p>welcome home to somewhere</p></div>the line keeps going and going</p><p>paragraph</p>
-使用time.strftime()
接受的指定日期/时间格式。
但是,如果我看看time.strftime()
的文档,那里甚至没有提到UNIX Epoch时间戳。
更新:如果我按照strftime(3)
的联机帮助页中所述使用datefmt
,则它适用于Linux,但不适用于Windows。
%s
产生
import time
time.strftime('%s')
因此,我正在寻找一种独立于平台的方法,以将UNIX Epoch以来的秒数用作日志记录中的日期格式。
答案 0 :(得分:2)
由于List<Task> changedTasks = originalTaskList
.Zip(newTaskList, (o, n) => o.ActiveFlag != n.ActiveFlag ? n : null)
.Where(n => n != null).ToList();
在支持的格式字符串方面的行为与平台有关,因此肯定无法通过asctime
来做到这一点。
“ strftime
和strftime()
行为”部分的文档中有一个关于此的段落:
受支持的全部格式代码集在各个平台上都不同,因为Python调用平台C库的
strptime()
函数,并且平台版本很常见。要查看平台所支持的全套格式代码,请查阅 strftime(3)文档。
https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior
但是,不管strftime()
,您仍然可以在logginng格式字符串中使用自UNIX Epoch以来的秒数。还有一个名为asctime
的属性:
created
-创建LogRecord的时间(由%(created)f
返回)。
https://docs.python.org/3/library/logging.html#logrecord-attributes
由于time.time()
在Linux和Windows上均可使用,因此您只能在日志记录格式字符串中使用time.time()
代替created
。
答案 1 :(得分:1)
不能使用ANSI C中的strftime()
获得Unix纪元格式(毕竟,这是一种输入)。
同样,您无法在Python中将此功能作为跨平台使用。
但是,您可以利用C和Python中非特殊字符都通过strftime()
的事实。
因此,您可以使用以下解决方法(虽然很丑陋但很有效):
import time
time.strftime(str(time.time()))
或更准确地说:
time.strftime(str(int(time.time())))
time.strftime(str(int(time.time()))) == time.strftime('%s')
# True