2013-02-19 54 views
0

我有日期时间对我的模型的Python GAE上的日期时间为UTC格式

2013-02-19 05:29:27.874648 

我使用jQuery TIMEAGO ..但问题是,它不给的愿望输出..

<time class="timeago" datetime="{{ activity.created }}">{{ activity.date }}</time> 
上述

的代码是我的HTML代码示例..

,这里是我的javascript:

<script> 
    jQuery(document).ready(function() { 
     jQuery("time.timeago").timeago(); 
    }); 
</script> 

我的问题是..我应该将其转换为UTC格式??如果是这样!我如何转换它?..以Python方式或JavaScript转换它..我该怎么做?

+1

你有什么愿望输出? – masterofdestiny 2013-02-19 06:07:10

+0

它应该是一分钟前或一小时前..这取决于我的时区 – 2013-02-19 06:08:01

回答

0

如果我理解你的问题,那么。

我怎么能转换成UTC

from datetime import datetime 
from pytz import timezone 

date_str = "2009-05-05 22:28:15" 
datetime_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") 
datetime_obj_utc = datetime_obj.replace(tzinfo=timezone('UTC')) 
print datetime_obj_utc.strftime("%Y-%m-%d %H:%M:%S %Z%z") 

如果你想添加一些时间戳,当前的时间,您需要安装pytz

做这样的事情

future = datetime.datetime.now() + datetime.timedelta(minutes=5) 
return time.mktime(future.timetuple()). 

请通过这篇文章time.mktime

+0

是否有另一种方式没有安装pytz?ahm ..我可以在javascript中进行转换吗?.. – 2013-02-19 06:59:30

0

通常你想要的日期已经是UTC(或UTC明确偏移量)的服务器上,然后转换在最后一秒(双关语意)到客户当地的时区。使用jquery-timeago,假设日期已经是(相对于)UTC,你可以将它格式化(在Python中,服务器端),jquery-timeago应该正确地计算出其余部分。

下面是我使用的格式是什么UTC在我自己的HTML模板日期:

{{ activity.date.isoformat() + 'Z' }} 
+0

上面的代码给了我一个arror 'str object'没有属性'isoformat' – 2013-02-19 06:25:27

+0

@Leonard:这意味着'activity.date'是一个字符串('str'对象),而不是'datetime.datetime'对象。这意味着日期已经被格式化,然后才能看到!你需要找出发生的地方并在那里正确地格式化(或者更好,把它作为'datetime'对象,这样视图就可以选择如何渲染它!)。 – Cameron 2013-02-19 06:28:52