首页 > 代码库 > 解决Odoo日期(时间)无效的问题 [转]

解决Odoo日期(时间)无效的问题 [转]

环境
Server: Ubuntu Kylin 14 + GreenOdoo-7.0-linux64, GreenOdoo-8.0-linux64
客户端: winXP+firefox 31 (类似问题发生在Win7+ff30, Win7+ie11)
        在安装了Odoo 8之后的试用过程中,遇到日期无效的问题。当初OE 7的时候没有发生过类似问题,期初以为是在版本更新过程中的bug,因此一直没有在意。
        如今8.0的已经趋于定型了,试用最新版依然存在这样的问题。于是试了几个系统设置的组合实验,发现这是由于OE的时间支持中对于“上午”、“下午”的支持不佳造成的。只要把时间字符串中的“上午”、“下午”换成“AM”,“PM”,或者改成24小时制的时间系统便不会提示日期无效。但是保存之后系统又会改回“上午”、“下午”,于是再次编辑记录时又会出现同样的提示,非常麻烦。
        因此我们的解决方案也是基于上述“上午”、“下午”的源头来做修改:

方法一  服务端修改设置
       此修改的原理是使用24小时制,在时间字段不出现“上午”、“下午”相关的字符串,从而避免日期无效的问题发生。
      在 设置 --> 翻译 --> 语言  中编辑 “Chinese (CN) / 简体中文” 中的时间格式设定,从默认的 “%I:%M:%S %p”修改为 “%H:%M:%S”,即把12小时制改为24小时制,保存设置。
技术分享
 然后刷新浏览器缓存(Ctrol+F5),重新打开视图,可以发现时间格式已经变成了24小时制,修改或新建记录也都不会提示日期无效。
技术分享
 
方法二  客户端修改设置
        由于代码中“上午”、“下午”部分对于国际化的支持不完善,时间的格式化中时采用了“上午”、“下午”,但解析时需要写成“AM”,“PM”才能够被正确解析。
       通过实验,在windows系统中,可以通过修改区域和语言选项,来避免这一问题。在控制面板 “区域和语言选项”的标准和格式中选择“中文(中国)”,然后“自定义”,选中其中的“时间”选项卡,修改“上午”、“下午”为“AM”,“PM”,确定。
技术分享
重新设定OE的语言时间格式为“%I:%M:%S %p”。
技术分享
 
 保存,刷新浏览器缓存,在查看相关记录,格式已经发生改变。
技术分享
 再新建或修改记录,都不会出现日期无效的提示。

鉴于Ubuntu等系统不能单独定义“上午”、“下午”的显示符号,为了更好的系统兼容性,建议把时间格式设置为24小时制。
 
 原文地址:http://vivianyw.blog.163.com/blog/static/134547422201474114655394/
 
 

解决Odoo日期(时间)无效的问题 [转]