Python datetime:isoformat()中的强制微秒输出
我刚刚发布了一个关于GoogleDrive日期格式的问题,实际上我找到了一个解决方案。从本质上讲,Google Drive文档声明它要求以RFC 3339格式指定日期。但是,即使毫秒为零,它也需要显式地使用完整或长格式。有没有办法强制datetime isoformat()方法输出毫秒,即使是零?我不希望使用strftime强制执行我自己的datetime规范,但是如果唯一的解决方案是使用以下strftime格式,那就这样吧Python datetime:isoformat()中的强制微秒输出,python,datetime,Python,Datetime,我刚刚发布了一个关于GoogleDrive日期格式的问题,实际上我找到了一个解决方案。从本质上讲,Google Drive文档声明它要求以RFC 3339格式指定日期。但是,即使毫秒为零,它也需要显式地使用完整或长格式。有没有办法强制datetime isoformat()方法输出毫秒,即使是零?我不希望使用strftime强制执行我自己的datetime规范,但是如果唯一的解决方案是使用以下strftime格式,那就这样吧 d.strftime("%Y-%m-%dT%H:%M:%S.%f+00
d.strftime("%Y-%m-%dT%H:%M:%S.%f+00:00")
以下是datetime isoformat()的实现:
看起来您无法在输出字符串中强制执行微秒。如果您使用的是Python 3.6+,则可以将
timespec
参数传递给isoformat()
该函数最后调用\u format\u time
,您可以在其中看到参数的支持值:
specs = {
'hours': '{:02d}',
'minutes': '{:02d}:{:02d}',
'seconds': '{:02d}:{:02d}:{:02d}',
'milliseconds': '{:02d}:{:02d}:{:02d}.{:03d}',
'microseconds': '{:02d}:{:02d}:{:02d}.{:06d}'
}
这将强制渲染该值,即使特定部分为零现在isoformat有一个timespec参数-看起来它将在3.6中着陆。此处讨论:在此处提交:
specs = {
'hours': '{:02d}',
'minutes': '{:02d}:{:02d}',
'seconds': '{:02d}:{:02d}:{:02d}',
'milliseconds': '{:02d}:{:02d}:{:02d}.{:03d}',
'microseconds': '{:02d}:{:02d}:{:02d}.{:06d}'
}