你如何格式化unix时间戳到Django当地时间?

时间:2017-09-21 16:46:16

标签: python django django-templates

如何在Django中将unix时间戳格式化为当地时间。时间模板过滤器似乎不起作用,

{{ unix_time_value|time:"TIME_FORMAT"}}

正确的方法是什么?

2 个答案:

答案 0 :(得分:0)

添加一个将unix时间戳转换为datetime对象的过滤器:

from django import template
register = template.Library()

@register.filter(name='unix_to_datetime')
def unix_to_datetime(value):
    return datetime.datetime.fromtimestamp(int(value))

然后你可以使用:

{{ unix_time_value|unix_to_datetime|time:"TIME_FORMAT"}}

有关Django documentation

中自定义模板标记的详情

答案 1 :(得分:0)

您的时间戳很可能是浮点数,在这种情况下,您需要先将其转换为日期时间对象。

然后,您可以选择使用Django的timezone将datetime对象转换为基于当前/默认时区的时区感知...或者只是使用模板过滤器

import datetime
from django.utils import timezone
dt = datetime.datetime.fromtimestmp(my_unix_timestamp) # convert to datetime
# optionally
tz_dt = timezone.make_aware(dt, timezone.get_default_timezone())