From e54c30959401025356d34acbf59166009a2f53fd Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 17 May 2016 14:00:40 +0100 Subject: [PATCH] Convert timezones using pytz. --- app/__init__.py | 32 ++++++++++++-------------------- requirements.txt | 1 + 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 1495772fa..4ffa3447a 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -2,7 +2,7 @@ import os import re import urllib import dateutil - +import pytz from flask import ( Flask, session, @@ -184,38 +184,30 @@ def syntax_highlight_json(code): return Markup(highlight(code, JavascriptLexer(), HtmlFormatter(noclasses=True))) -def format_datetime(date): - from_zone = dateutil.tz.gettz('UTC') - to_zone = dateutil.tz.gettz('Europe/London') +def gmt_timezones(date): date = dateutil.parser.parse(date) - native = date.replace(tzinfo=from_zone) - return native.astimezone(to_zone).strftime('%A %d %B %Y at %H:%M') + forced_utc = date.replace(tzinfo=pytz.utc) + return forced_utc.astimezone(pytz.timezone('Europe/London')) + + +def format_datetime(date): + return gmt_timezones(date).strftime('%A %d %B %Y at %H:%M') def format_datetime_short(date): - from_zone = dateutil.tz.gettz('UTC') - to_zone = dateutil.tz.gettz('Europe/London') - date = dateutil.parser.parse(date) - native = date.replace(tzinfo=from_zone) - return native.astimezone(to_zone).strftime('%d %B at %H:%M') + return gmt_timezones(date).strftime('%d %B at %H:%M') def format_time(date): - from_zone = dateutil.tz.gettz('UTC') - to_zone = dateutil.tz.gettz('Europe/London') - date = dateutil.parser.parse(date) - native = date.replace(tzinfo=from_zone) - return native.astimezone(to_zone).strftime('%H:%M') + return gmt_timezones(date).strftime('%H:%M') def format_date(date): - date = dateutil.parser.parse(date) - return date.strftime('%A %d %B %Y') + return gmt_timezones(date).strftime('%A %d %B %Y') def format_date_short(date): - date = dateutil.parser.parse(date) - return date.strftime('%d %B').lstrip('0') + return gmt_timezones(date).strftime('%d %B').lstrip('0') def valid_phone_number(phone_number): diff --git a/requirements.txt b/requirements.txt index ac28fefaf..b6e66993a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,6 +13,7 @@ pyexcel-io==0.1.0 pyexcel-xls==0.1.0 pyexcel-xlsx==0.1.0 pyexcel-ods3==0.1.1 +pytz==2016.4 git+https://github.com/alphagov/notifications-python-client.git@1.0.0#egg=notifications-python-client==1.0.0