Exemple #1
0
def parse_date(date_string, format_, as_utc=True):
    """
    Return a datetime corresponding to date_string, parsed according to format.

    For example, to re-display a date string in another format::

        {{ "01/01/1970"|parse_date:"%m/%d/%Y"|date:"F jS, Y" }}
    """
    try:
        parsed_dt = datetime.datetime.strptime(date_string, format_)
        return DateUtils.as_utc(parsed_dt) if as_utc else parsed_dt
    except ValueError:
        pass
Exemple #2
0
    def test_as_utc(self):
        # convert from naive to UTC
        naive = datetime.datetime(2002, 10, 27, 1, 30)
        in_utc = DateUtils.as_utc(naive)
        self.assertEqual(in_utc.strftime(self.fmt),
                         '2002-10-27 01:30:00 UTC+0000')

        # convert from UTC to UTC (nothing changed)
        in_utc = datetime.datetime(2002, 10, 27, 1, 30, tzinfo=pytz.UTC)
        self.assertEqual(in_utc.strftime(self.fmt),
                         '2002-10-27 01:30:00 UTC+0000')
        in_utc = DateUtils.as_utc(in_utc)
        self.assertEqual(in_utc.strftime(self.fmt),
                         '2002-10-27 01:30:00 UTC+0000')

        # hard-replace from localized to UTC (simply ignore original tz)
        in_eastern = self.eastern.localize(
            datetime.datetime(2002, 10, 27, 1, 30))
        self.assertEqual(in_eastern.strftime(self.fmt),
                         '2002-10-27 01:30:00 EST-0500')
        in_utc = DateUtils.as_utc(in_eastern)
        self.assertEqual(in_utc.strftime(self.fmt),
                         '2002-10-27 01:30:00 UTC+0000')