Issue 3233: Timestamp stored in ZIP file not correct ? (original) (raw)
Created on 2008-06-29 08:08 by pythonmeister, last changed 2022-04-11 14:56 by admin. This issue is now closed.
Messages (4)
Author: Stefan Sonnenberg-Carstens (pythonmeister)
Date: 2008-06-29 08:08
Given the attached source, I can produce these results:
[stefan@localhost ~]$ python ziptest.py Start 10:05:54 ZIP stored mtime: (2008, 6, 29, 10, 5, 54) Original mtime: (2008, 6, 29, 10, 5, 54) Duration 0.00291705131531 Stop 10:05:54
Start 10:05:55 ZIP stored mtime: (2008, 6, 29, 10, 5, 54) Original mtime: (2008, 6, 29, 10, 5, 55) Duration 0.00302505493164 Stop 10:05:55
Start 10:05:56 ZIP stored mtime: (2008, 6, 29, 10, 5, 56) Original mtime: (2008, 6, 29, 10, 5, 56) Duration 0.00260186195374 Stop 10:05:56
Start 10:05:57 ZIP stored mtime: (2008, 6, 29, 10, 5, 56) Original mtime: (2008, 6, 29, 10, 5, 57) Duration 0.00173997879028 Stop 10:05:57
Start 10:05:58 ZIP stored mtime: (2008, 6, 29, 10, 5, 58) Original mtime: (2008, 6, 29, 10, 5, 58) Duration 0.00218915939331 Stop 10:05:58
Start 10:05:59 ZIP stored mtime: (2008, 6, 29, 10, 5, 58) Original mtime: (2008, 6, 29, 10, 5, 59) Duration 0.00273489952087 Stop 10:05:59
Start 10:06:00 ZIP stored mtime: (2008, 6, 29, 10, 6, 0) Original mtime: (2008, 6, 29, 10, 6, 0) Duration 0.00237393379211 Stop 10:06:00
Start 10:06:01 ZIP stored mtime: (2008, 6, 29, 10, 6, 0) Original mtime: (2008, 6, 29, 10, 6, 1) Duration 0.00279211997986 Stop 10:06:01
Start 10:06:02 ZIP stored mtime: (2008, 6, 29, 10, 6, 2) Original mtime: (2008, 6, 29, 10, 6, 2) Duration 0.00237607955933 Stop 10:06:02
Start 10:06:03 ZIP stored mtime: (2008, 6, 29, 10, 6, 2) Original mtime: (2008, 6, 29, 10, 6, 3) Duration 0.0018618106842 Stop 10:06:03
I also printed the duration to see if it passes from one second to another. It doesn't. The behaviour is the same with ZIP_STORED as storage type.
Author: Stefan Sonnenberg-Carstens (pythonmeister)
Date: 2008-06-29 08:09
[stefan@localhost ~]$ python -V Python 2.5.1 [stefan@localhost ~]$ uname -a Linux localhost.localdomain 2.6.25.6-55.fc9.i686 #1 SMP Tue Jun 10 16:27:49 EDT 2008 i686 i686 i386 GNU/Linux
Author: Stefan Sonnenberg-Carstens (pythonmeister)
Date: 2008-06-29 08:17
I changed the script a bit, so that the txt file is not getting recreated every time. It gives:
[stefan@localhost ~]$ python ziptest.py Start 10:15:05 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00438690185547 Stop 10:15:05
Start 10:15:06 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00189399719238 Stop 10:15:06
Start 10:15:07 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00167894363403 Stop 10:15:07
Start 10:15:08 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00195598602295 Stop 10:15:08
Start 10:15:09 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.0136680603027 Stop 10:15:09
Start 10:15:10 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00206613540649 Stop 10:15:10
Start 10:15:11 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00191879272461 Stop 10:15:11
Start 10:15:12 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00196504592896 Stop 10:15:12
Start 10:15:13 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.00182104110718 Stop 10:15:13
Start 10:15:14 ZIP stored mtime: (2008, 6, 29, 10, 15, 4) Original mtime: (2008, 6, 29, 10, 15, 5) Duration 0.0369889736176 Stop 10:15:14
Author: Martin v. Löwis (loewis) *
Date: 2008-06-29 08:54
That's a limitation of the zip file format. It uses DOS time stamps, which only support 5 bits for representing seconds. As a consequence, within a minute, ZIP can only store even seconds.
If the number of seconds in the minute is odd on the file system, the zipfile module rounds down to the previous even second.
Closing as "won't fix".
History
Date
User
Action
Args
2022-04-11 14:56:35
admin
set
github: 47483
2008-06-29 08:54:15
loewis
set
status: open -> closed
resolution: wont fix
messages: +
nosy: + loewis
2008-06-29 08:17:28
pythonmeister
set
files: + ziptest.py
messages: +
2008-06-29 08:09:06
pythonmeister
set
messages: +
2008-06-29 08:08:31
pythonmeister
create