Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ea752fb

Browse files
committed
Check for time.struct_time in addition to tuples. Use 3 characters
for zone hours. Fixes #499169.
1 parent b0d71d0 commit ea752fb

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

Lib/imaplib.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,12 +1069,12 @@ def Time2Internaldate(date_time):
10691069
Return string in form: '"DD-Mmm-YYYY HH:MM:SS +HHMM"'
10701070
"""
10711071

1072-
dttype = type(date_time)
1073-
if dttype is type(1) or dttype is type(1.1):
1072+
if isinstance(date_time, int) or isinstance(date_time, float):
10741073
tt = time.localtime(date_time)
1075-
elif dttype is type(()):
1074+
elif isinstance(date_time, tuple) or \
1075+
isinstance(date_time, time.struct_time):
10761076
tt = date_time
1077-
elif dttype is type(""):
1077+
elif isinstance(date_time, str):
10781078
return date_time # Assume in correct format
10791079
else: raise ValueError
10801080

@@ -1085,7 +1085,7 @@ def Time2Internaldate(date_time):
10851085
zone = -time.altzone
10861086
else:
10871087
zone = -time.timezone
1088-
return '"' + dt + " %+02d%02d" % divmod(zone/60, 60) + '"'
1088+
return '"' + dt + " %+03d%02d" % divmod(zone/60, 60) + '"'
10891089

10901090

10911091

Lib/test/test_imaplib.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from test_support import verify,verbose
2+
import imaplib
3+
import time
4+
5+
# We can check only that it successfully produces a result,
6+
# not the correctness of the result itself, since the result
7+
# depends on the timezone the machine is in.
8+
9+
timevalues = [2000000000, 2000000000.0, time.localtime(2000000000),
10+
"18-May-2033 05:33:20 +0200"]
11+
12+
for t in timevalues:
13+
imaplib.Time2Internaldate(t)
14+

0 commit comments

Comments
 (0)