2015-07-13 114 views
0

我在我的jinja2模板本地化代碼。爲什麼我的日期和時間有所不同?

{% set currency = "SEK" %} 
{% set format = "sv_SE" %} 
{% set timezoneinfo = 'Europe/Stockholm' %} 
{% set locale = "se" %} 

但它不工作幾個小時和幾分鐘,如果我用這樣的過濾器使用谷歌搜索API結果過濾器的值。

{{scored_document.fields.10.value|datetimeformat_list(hour=scored_document.fields.17.value|int ,minute =scored_document.fields.18.value|int, timezoneinfo=timezoneinfo, locale=locale)}} 

過濾

def datetimeformat_list(date, hour, minute, locale='en', timezoneinfo='Asia/Calcutta'): 
    tzinfo = timezone(timezoneinfo) 
    input = datetime(date.year, date.month, date.day, int(hour), int(minute), tzinfo=tzinfo) 
    time_str = format_time(input, 'H:mm', tzinfo=tzinfo, locale=locale) 
    return "{0}".format(time_str) 

的代碼給出不同的時間,如果我只是做

{{ ad.modified|datetimeformat_viewad(locale='se', timezoneinfo='Europe/Stockholm') }}

此過濾器

def datetimeformat_viewad(to_format, locale='en', timezoneinfo='Asia/Calcutta'): 
    tzinfo = timezone(timezoneinfo) 
    month = MONTHS[to_format.month - 1] 
    date_str = '{0} {1}'.format(to_format.day, _(month)) 
    time_str = format_time(to_format, 'H:mm', tzinfo=tzinfo, locale=locale) 
    return "{0} {1}".format(date_str, time_str) 

爲什麼輸出不是同一時間?

+1

我認爲你沒有足夠的信息。你談論一個過濾器,但你還沒有說過你是否使用數據存儲,文本搜索或其他你應用過濾器的東西。 –

回答

1

將任意pytz時區直接傳遞給datetime構造函數是錯誤的;您應該使用pytz_tzinfo.localize()方法,因爲它在pytz docs的開頭就說過了。

您的代碼中可能存在其他問題。

相關問題