OpenERP 6.1日期时间格式



为什么

o.create_order.strftime("%d %B %Y")

时不返回任何内容

time.strftime("%d %B %Y")

返回日期"2013年2月10日"???

o.create_order是根据postgresql的时间戳。它包含"2012年11月30日09:38:34",如openErp销售订单-其他信息选项卡所示。查询数据库时存储为"2012-11-30 08:38:34.272"。因此,我希望看到"2012年11月30日",但一无所获。我是不是误解了语法?

我从python 3.3测试了这个:

>>> d1=datetime.datetime.today()
>>> print(d1.strftime("%d %B %Y"))
10 february 2013 

如何在OpenOffice Writer中使用它?

顺便问一下,我怎么能得到"二月"而不是"二月"?

因为o.create_order返回的是字符串而不是日期时间对象,即使在内部,数据库列是时间戳。OpenERP ORM返回一个ISO 8601格式的字符串。

您需要使用RML报告中提供的formatLang方法,或者使用datetime python模块创建datetime对象。

试试这个:

datetime.strftime('%d %B %Y', o.create_order')
这是因为o.create_order返回了一个字符串。因此,首先您必须将字符串日期转换为datetime格式,然后您可以将其转换为任何您想要的字符串格式。

试试这个:

#将字符串转换为日期时间格式。dt1 = datetime.strptime(o.create_order,"%Y-%m-%d %H:%M:%S")

#将日期时间转换为给定的格式并返回字符串。dt2 = datetime.strftime(dt,"%d %B %Y")

希望这能解决你的问题。

最新更新