如果我使用Matplotlib DateFormatter,如下所示:
mydateformatter = DateFormatter("%b %d %I:%M %p", self._tz)
我会得到日期(注意时间部分有一个前导零):
2011年11月27日
03:00 PM
相反,我想在时间上失去领先的零(更像人类那样),例如:
2011年11月27日
下午3:00
有没有办法做到这一点?
解决方法:
注意:请参阅编辑历史记录以了解下面评论中的讨论.这篇文章已被重写以反映它们.
它不能使用标准的日期转换说明符来完成,这些说明符在python文档中列出(与C标准化的相同).但是,可能存在与平台相关的方式来实现此格式.像这样的一些代码可能会派上用场:
# Set the default spec to use -- uglier is better than broken.
hour_fmt = '%I'
# If we're running on a platform that has an hour spec w/o leading zero
# then use that one instead.
if sys.platform.startswith('linux'):
hour_fmt = '%l'
elif sys.platform.startswith('win'):
hour_fmt = '%#I'
# etc
mydateformatter = DateFormatter("%b %d " + hour_fmt + ":%M %p", self._tz)
我已经确认%l在Linux上工作,并且OP确认’%#I`可以在Windows上运行.
标签:python,matplotlib