如何在Django中将unix时间戳格式化为当地时间。时间模板过滤器似乎不起作用,
{{ unix_time_value|time:"TIME_FORMAT"}}
正确的方法是什么?
答案 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"}}
答案 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())