2011-03-15 74 views
2

我正在使用Python的Google应用引擎。带Python时区的日期时间字符串?

我已经在数据库中存储了一个日期时间对象,并提取它并应用时区,并使用模板保存它。结果是"2011-03-15 16:54:24.398503+09:00",但我想要的是:"2011-03-16 01:54:24"(时区应用的字符串没有毫秒 - 注意那天改变了)。

我该怎么做?

回答

2

一旦你有日期时间对象,使用strftime,就像这样;

from datetime import datetime 
datetime.now().strftime('%Y-%m-%d %H:%M:%S') 

http://docs.python.org/release/2.6.6/library/datetime.html#strftime-and-strptime-behavior

+0

strftime是否应用时区?我只是尝试,但似乎本地时间不适用。我得到“2011-03-15 16:54:24”而不是“2011-03-16 01:54:24” – SeniorLee 2011-03-15 17:11:07

+2

datetime.now()*是* localtime。 datetime.utcnow()返回符合UTC的表单。 strftime只是指定该日期时间对象的部分输出。 如果你需要一个特定的地区时区,你应该这样做, import pytz datetime.now(pytz.timezone('Africa/Casablanca'))。strftime('%Y-%m-%d%H: %M:%S') – 2011-04-26 15:27:06

0

使用strftime的鼓励,但要确保你的本地时间是正确的。这应该是你的应用/网站中的一个设置,假​​设你使用的是django,或者你可能需要手动执行此操作

+0

是的,我正在使用django。但是当地时间你的意思是否正确? – SeniorLee 2011-03-15 16:52:05

+0

默认时区是chicago,settings.py中有一行可以设置您的时区 – theheadofabroom 2011-03-15 17:57:14