2017-10-13 8 views
0

が、私はcreated_dateを照会し、テンプレートに入れる:あなたが見UTC時刻を上海+8タイムゾーンに変換するにはどうすればいいですか?データベースから

enter image description here

、それは私がテンプレートで8タイムゾーンの時刻を示してできるか、UTC時刻のですか?

は私が変更するカスタムテンプレートフィルタを使用しようとしたが、失敗しました:

from django import template 
from django.template.defaultfilters import stringfilter 
import datetime, time 

register = template.Library() 

### function 

def utc2local(utc_st): 
    """UTC时间转本地时间(+8:00)""" 
    now_stamp = time.time() 
    local_time = datetime.datetime.fromtimestamp(now_stamp) 
    utc_time = datetime.datetime.utcfromtimestamp(now_stamp) 
    offset = local_time - utc_time 
    local_st = utc_st + offset 

    return local_st 


@register.filter 
def convert_utc_to_shanghai(value): 
    """ 
    UTC->Shanghai 
    :param value: 
    :return: 
    """ 

    local_time = utc2local(value) 

    print local_time.strftime("% Y - % m - % d % H: % M: % S") 

    return local_time.strftime 
+0

してくださいあなたが試したことを示してください。 – Sarcoma

+0

私のカスタムフィルターがうまくいかず、投稿を編集しました。 – 244boy

+1

djangoの['timezone'フィルタ](https://docs.djangoproject.com/ja/1.11/topics/i18n/timezones/#timezone)を試しましたか? – schwobaseggl

答えて

0

私の解決策dbにUTC時間を節約しないで、settings.pyでこれを設定します。

# Chinese Shanghai 
LANGUAGE_CODE = 'zh-hans' 
TIME_ZONE = 'Asia/Shanghai' 
# db does not use utc time 
USE_TZ = False 
関連する問題