2013-02-19 58 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