app engine 下面数据库的保存时间的中国化

21 views
Skip to first unread message

google app engine

unread,
Feb 4, 2009, 3:10:00 AM2/4/09
to Google App engine 中国开发组
1.首先下载pytz
2.然后使用下面的代码:

from datetime import datetime
from datetime import date as strdate
from pytz import timezone


def now(tz = None):
if tz == None:
tz = timezone("Asia/Shanghai")
time = datetime.now(tz)
ret = datetime(time.year, time.month, time.day, time.hour,
time.minute, time.second)
return ret

3.在调用时使用now来调用当前的时间即可
其它的时间由自己运算得到就可以

google app engine

unread,
Feb 4, 2009, 3:10:59 AM2/4/09
to Google App engine 中国开发组
pytz的下载地址:
http://sourceforge.net/projects/pytz/

@@

unread,
Feb 4, 2009, 3:14:26 AM2/4/09
to google-app-e...@googlegroups.com
我开始想保存的时候还是使用UTC
然后在页面显示的时候自己做一个转换时区的filter就可以了。
不过一直停留在想法阶段 没去实现:p

2009/2/4 google app engine <cali...@gmail.com>:

google app engine

unread,
Feb 4, 2009, 3:17:32 AM2/4/09
to Google App engine 中国开发组
嗯。我很早就遇到了这个问题,
感觉好象很难,一直没有动手。
现在找到的办法感觉还是挺简单的。
pytz已经做的很好了。
刚测试成功。
发出来与大家分享一下。
我想刚开始做的时候肯定会有很多人有同样的问题。

On Feb 4, 4:14 pm, "@@" <ask...@gmail.com> wrote:
> 我开始想保存的时候还是使用UTC
> 然后在页面显示的时候自己做一个转换时区的filter就可以了。
> 不过一直停留在想法阶段 没去实现:p
>

> 2009/2/4 google app engine <calid...@gmail.com>:

@@

unread,
Feb 4, 2009, 3:22:14 AM2/4/09
to google-app-e...@googlegroups.com
对 开始想做的时候是因为pytz文件太多,zipimport还不好用。。所以就一直没有动手
现在可以使用pytz了就方便不少

2009/2/4 google app engine <cali...@gmail.com>:

wenxin ren

unread,
Feb 4, 2009, 3:25:10 AM2/4/09
to google-app-e...@googlegroups.com
这种方法pytz也是本地的
不是GOOGLE直接支持的。
所以还是会占用空间。
文件的确很多。

2009/2/4 @@ <ask...@gmail.com>

@@

unread,
Feb 4, 2009, 3:30:04 AM2/4/09
to google-app-e...@googlegroups.com
空间倒不是太大的问题。
关键是1000个文件数的限制。
django+pytz 直接就超过了。。

2009/2/4 wenxin ren <cali...@gmail.com>:

wenxin ren

unread,
Feb 4, 2009, 3:32:07 AM2/4/09
to google-app-e...@googlegroups.com
django好象app engine直接支持的。
不用上传

2009/2/4 @@ <ask...@gmail.com>

@@

unread,
Feb 4, 2009, 3:38:02 AM2/4/09
to google-app-e...@googlegroups.com
那个0.96的 版本太旧了

2009/2/4 wenxin ren <cali...@gmail.com>:

junkie

unread,
Feb 4, 2009, 10:24:52 PM2/4/09
to Google App engine 中国开发组
我存的也都是utc哦

On 2月4日, 下午4时14分, "@@" <ask...@gmail.com> wrote:
> 我开始想保存的时候还是使用UTC
> 然后在页面显示的时候自己做一个转换时区的filter就可以了。
> 不过一直停留在想法阶段 没去实现:p
>

> 2009/2/4 google app engine <calid...@gmail.com>:

wenxin ren

unread,
Feb 4, 2009, 10:38:49 PM2/4/09
to google-app-e...@googlegroups.com
有8个小时的时间差吧?

2009/2/5 junkie <perc...@gmail.com>

Allen

unread,
Feb 15, 2009, 11:47:55 AM2/15/09
to Google App engine 中国开发组
是的 是的,,我很早就遇到这个问题了,
好象是不是有函数可以直接转换过来的啊?

> > > 其它的时间由自己运算得到就可以- 隐藏被引用文字 -
>
> - 显示引用的文字 -

unread,
Feb 16, 2009, 5:10:22 AM2/16/09
to Google App engine 中国开发组
但對 db.Model 里dataProperty 的auto_new = add 的特性無效呀.

wenxin ren

unread,
Feb 16, 2009, 5:15:00 AM2/16/09
to google-app-e...@googlegroups.com
是的。
需要更新时在字段上加上
 db.model.date = now()


2009/2/16 華 <ahw...@gmail.com>

Allen

unread,
Feb 16, 2009, 8:56:22 AM2/16/09
to Google App engine 中国开发组
.date 是自动添加,其实时间应该是唯一的,,是不是可以考虑在显示时间的时候进行时区的转换就可以了,而不要去理会model里保存的是什么格
式。

哪位高手分享一下啊?

@@

unread,
Feb 16, 2009, 8:59:27 AM2/16/09
to google-app-e...@googlegroups.com
用filter吧。
不过我没去做,实现一个应该不是很难的。
特别是只是固定针对某个时区的话

2009/2/16 Allen <allen...@gmail.com>:

wenxin ren

unread,
Feb 16, 2009, 11:39:50 AM2/16/09
to google-app-e...@googlegroups.com
如果能修改服务器上的时间,就可以了。
但是python自己的时区处理都是靠的第三方的人在做的。
我想不太可能指望见PYTHON能提供个API来允许用户对服务器时区做出修改吧。

google app engine

unread,
Feb 19, 2009, 12:36:07 PM2/19/09
to Google App engine 中国开发组
http://code.google.com/p/googleappengine/issues/detail?id=498&q=timezone&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component
大家有时间顶一下这个吧。让GOOGLE把这个库加进去,我们就不用烦恼了。

On 2月17日, 上午12时39分, wenxin ren <calid...@gmail.com> wrote:
> 如果能修改服务器上的时间,就可以了。
> 但是python自己的时区处理都是靠的第三方的人在做的。
> 我想不太可能指望见PYTHON能提供个API来允许用户对服务器时区做出修改吧。
>

> 2009/2/16 Allen <allen.lu...@gmail.com>


>
>
>
> > .date 是自动添加,其实时间应该是唯一的,,是不是可以考虑在显示时间的时候进行时区的转换就可以了,而不要去理会model里保存的是什么格
> > 式。
>
> > 哪位高手分享一下啊?
>
> > On 2月16日, 下午6时15分, wenxin ren <calid...@gmail.com> wrote:
> > > 是的。
> > > 需要更新时在字段上加上
> > > db.model.date = now()
>
> > > 2009/2/16 華 <ahw...@gmail.com>
>
> > > > 但對 db.Model 里dataProperty 的auto_new = add 的特性無效呀.
>
> > > > On 2月4日, 下午4时10分, google app engine <calid...@gmail.com> wrote:
> > > > > 1.首先下载pytz
> > > > > 2.然后使用下面的代码:
>
> > > > > from datetime import datetime
> > > > > from datetime import date as strdate
> > > > > from pytz import timezone
>
> > > > > def now(tz = None):
> > > > > if tz == None:
> > > > > tz = timezone("Asia/Shanghai")
> > > > > time = datetime.now(tz)
> > > > > ret = datetime(time.year, time.month, time.day, time.hour,
> > > > > time.minute, time.second)
> > > > > return ret
>
> > > > > 3.在调用时使用now来调用当前的时间即可
> > > > > 其它的时间由自己运算得到就可以- 隐藏被引用文字 -
>

> > > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Reply all
Reply to author
Forward
0 new messages