# HG changeset patch # User Paul Boddie # Date 1367948949 -7200 # Node ID 25738f766894879d0e62a2a443c653cf0faed5f3 # Parent 665a909bdb2710dca3b7371559159b1c43084352 Fixed the ISO 8601 representations of datetimes. diff -r 665a909bdb27 -r 25738f766894 DateSupport.py --- a/DateSupport.py Mon May 06 18:06:04 2013 +0200 +++ b/DateSupport.py Tue May 07 19:49:09 2013 +0200 @@ -373,19 +373,19 @@ def __str__(self): return Date.__str__(self) + self.time_string() - def time_string(self, zone_as_offset=0): + def time_string(self, zone_as_offset=False, time_prefix=" ", zone_prefix=" "): if self.has_time(): data = self.as_tuple() - time_str = " %02d:%02d" % data[3:5] + time_str = "%s%02d:%02d" % ((time_prefix,) + data[3:5]) if data[5] is not None: time_str += ":%02d" % data[5] if data[6] is not None: if zone_as_offset: utc_offset = self.utc_offset() if utc_offset: - time_str += " %+03d:%02d" % utc_offset + time_str += "%s%+03d:%02d" % ((zone_prefix,) + utc_offset) else: - time_str += " %s" % data[6] + time_str += "%s%s" % (zone_prefix, data[6]) return time_str else: return "" @@ -400,7 +400,7 @@ ) + tuple(self.data[3:6])) def as_ISO8601_datetime_string(self): - return Date.__str__(self) + self.time_string(1) + return Date.__str__(self) + self.time_string(zone_as_offset=True, time_prefix="T", zone_prefix="") def as_datetime(self): return self diff -r 665a909bdb27 -r 25738f766894 tests/test_dates.py --- a/tests/test_dates.py Mon May 06 18:06:04 2013 +0200 +++ b/tests/test_dates.py Tue May 07 19:49:09 2013 +0200 @@ -7,6 +7,9 @@ ts1 = Timespan(d1, d1) ts2 = Timespan(d1, d2) +print "d1:", d1, d1.as_ISO8601_datetime_string() +print "d2:", d2, d2.as_ISO8601_datetime_string() + # expected result operands print "%r : %r <- %r < %r" % (d1 < d2, d1 < d2, d1, d2) print "%r : %r <- %r == %r" % (not d1 == d2, d1 == d2, d1, d2)