Display timestamp in django template
date, django, templates, timestamp
Solution
You could use custom template filters (see https://docs.djangoproject.com/en/dev/howto/custom-template-tags/). In your case it could like this:
- Create directory 'templatetags' in application with view, that renders template.
Put into this dir blank file "__init__.py" and "timetags.py" with code:
from django import template
import datetime
register = template.Library()
def print_timestamp(timestamp):
try:
#assume, that timestamp is given in seconds with decimal point
ts = float(timestamp)
except ValueError:
return None
return datetime.datetime.fromtimestamp(ts)
register.filter(print_timestamp)
In your template, add
{% load timetags %}
Use following syntax in template:
{{ timestamp|print_timestamp }}
Where timestamp = 1337453263.939 from your example
This will print timestamp in local date and time format. If you want to customize output, you can modify print_timestamp in following way:
import time
def print_timestamp(timestamp):
...
#specify format here
return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(ts))
Problem
I need to display timestamp of a post with in django template. The timestamp would be like: ``` "timestamp":1337453263939 in milli seconds ``` I can convert the timestamp into datetime object and render it in the view. Is there is any direct way to display through the template? The output should be: ``` print(datetime.datetime.fromtimestamp(1337453263.939)) 2012-05-20 00:17:43.939000 ```