Skip to content

Commit 7db9cba

Browse files
committed
Improve example on tzinfo instances
Move from GMTX to TZX when naming the classes, as GMT1 might be rather confusing as seen in the reported issue. In addition, move to UTC over GMT and improve the tzname implementation.
1 parent a5293b4 commit 7db9cba

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

Doc/library/datetime.rst

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,7 +1317,7 @@ Examples of working with datetime objects:
13171317
Using datetime with tzinfo:
13181318

13191319
>>> from datetime import timedelta, datetime, tzinfo
1320-
>>> class GMT1(tzinfo):
1320+
>>> class TZ1(tzinfo):
13211321
... def utcoffset(self, dt):
13221322
... return timedelta(hours=1) + self.dst(dt)
13231323
... def dst(self, dt):
@@ -1331,9 +1331,9 @@ Using datetime with tzinfo:
13311331
... else:
13321332
... return timedelta(0)
13331333
... def tzname(self,dt):
1334-
... return "GMT +1"
1334+
... return "UTC +2" if self.dst(dt) else "UTC +1"
13351335
...
1336-
>>> class GMT2(tzinfo):
1336+
>>> class TZ2(tzinfo):
13371337
... def utcoffset(self, dt):
13381338
... return timedelta(hours=2) + self.dst(dt)
13391339
... def dst(self, dt):
@@ -1346,26 +1346,26 @@ Using datetime with tzinfo:
13461346
... else:
13471347
... return timedelta(0)
13481348
... def tzname(self,dt):
1349-
... return "GMT +2"
1349+
... return "UTC +3" if self.dst(dt) else "UTC +2"
13501350
...
1351-
>>> gmt1 = GMT1()
1351+
>>> tz1 = TZ1()
13521352
>>> # Daylight Saving Time
1353-
>>> dt1 = datetime(2006, 11, 21, 16, 30, tzinfo=gmt1)
1353+
>>> dt1 = datetime(2006, 11, 21, 16, 30, tzinfo=tz1)
13541354
>>> dt1.dst()
13551355
datetime.timedelta(0)
13561356
>>> dt1.utcoffset()
13571357
datetime.timedelta(seconds=3600)
1358-
>>> dt2 = datetime(2006, 6, 14, 13, 0, tzinfo=gmt1)
1358+
>>> dt2 = datetime(2006, 6, 14, 13, 0, tzinfo=tz1)
13591359
>>> dt2.dst()
13601360
datetime.timedelta(seconds=3600)
13611361
>>> dt2.utcoffset()
13621362
datetime.timedelta(seconds=7200)
13631363
>>> # Convert datetime to another time zone
1364-
>>> dt3 = dt2.astimezone(GMT2())
1364+
>>> dt3 = dt2.astimezone(TZ2())
13651365
>>> dt3 # doctest: +ELLIPSIS
1366-
datetime.datetime(2006, 6, 14, 14, 0, tzinfo=<GMT2 object at 0x...>)
1366+
datetime.datetime(2006, 6, 14, 14, 0, tzinfo=<TZ2 object at 0x...>)
13671367
>>> dt2 # doctest: +ELLIPSIS
1368-
datetime.datetime(2006, 6, 14, 13, 0, tzinfo=<GMT1 object at 0x...>)
1368+
datetime.datetime(2006, 6, 14, 13, 0, tzinfo=<TZ1 object at 0x...>)
13691369
>>> dt2.utctimetuple() == dt3.utctimetuple()
13701370
True
13711371

@@ -1591,26 +1591,25 @@ Instance methods:
15911591
Example:
15921592

15931593
>>> from datetime import time, tzinfo, timedelta
1594-
>>> class GMT1(tzinfo):
1594+
>>> class TZ1(tzinfo):
15951595
... def utcoffset(self, dt):
15961596
... return timedelta(hours=1)
15971597
... def dst(self, dt):
15981598
... return timedelta(0)
15991599
... def tzname(self,dt):
1600-
... return "Europe/Prague"
1600+
... return "UTC+1"
16011601
...
1602-
>>> t = time(12, 10, 30, tzinfo=GMT1())
1602+
>>> t = time(12, 10, 30, tzinfo=TZ1())
16031603
>>> t # doctest: +ELLIPSIS
1604-
datetime.time(12, 10, 30, tzinfo=<GMT1 object at 0x...>)
1605-
>>> gmt = GMT1()
1604+
datetime.time(12, 10, 30, tzinfo=<TZ1 object at 0x...>)
16061605
>>> t.isoformat()
16071606
'12:10:30+01:00'
16081607
>>> t.dst()
16091608
datetime.timedelta(0)
16101609
>>> t.tzname()
1611-
'Europe/Prague'
1610+
'UTC+1'
16121611
>>> t.strftime("%H:%M:%S %Z")
1613-
'12:10:30 Europe/Prague'
1612+
'12:10:30 UTC+1'
16141613
>>> 'The {} is {:%H:%M}.'.format("time", t)
16151614
'The time is 12:10.'
16161615

0 commit comments

Comments
 (0)