Python for Windows reports wrong local time when run under Cygwin on Europe/Moscow TZ
Mike Kaganski
mikekaganski@mail.ru
Mon Jun 7 06:59:52 GMT 2021
Hello,
Running Cygwin 3.1.7-1 on Windows 10 Version 21H1 (OS Build 19043.985),
I have this issue:
when I start Cygwin's Python, I have correct time reported:
> mikek@DESKTOP-8SHAE9Q ~
> $ python
> Python 3.8.9 (default, Apr 21 2021, 23:14:29)
> [GCC 10.2.0] on cygwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import datetime
> >>> datetime.datetime.now()
> datetime.datetime(2021, 6, 7, 9, 40, 15, 318391)
But running Python for Windows (it doesn't matter which, specifically
for the test I used the one from MS Store [1]), I have incorrect local time:
> mikek@DESKTOP-8SHAE9Q ~
> $ "C:/Program
> Files/WindowsApps/PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0/python3.8.exe"
> Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC
> v.1928 64 bit (AMD64)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import datetime
> >>> datetime.datetime.now()
> datetime.datetime(2021, 6, 7, 7, 40, 55, 503775)
Note how the latter output reports 2021-06-07 07:40, while the former
reports 2021-06-07 09:40. The difference is 2 hours.
Starting the same Python for Windows from cmd.exe has it correct:
> C:\Users\mikek>python
> Python 3.8.10 (tags/v3.8.10:3d8993a, May 3 2021, 11:48:03) [MSC
> v.1928 64 bit (AMD64)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import datetime
> >>> datetime.datetime.now()
> datetime.datetime(2021, 6, 7, 9, 41, 21, 925240)
Cygwin reports correct timezone:
> $ echo $TZ
> Europe/Moscow
Starting Python for Windows using a different timezone (specifically, '$
TZ=UTC "C:/Program
Files/WindowsApps/PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0/python3.8.exe"')
gives correct time for *that* time zone.
This is a problem, because in our project (LibreOffice), we use Cygwin
as environment for unit testing, where LibreOffice's own Python (also
built natively for Windows) is used, and at some times (from 00:00 till
02:00) it reports wrong dates, which makes tests fail locally on
affected systems(see [2]).
Thank you!
[1] https://www.microsoft.com/en-us/p/python-38/9mssztt1n39l
[2]
https://gerrit.libreoffice.org/c/core/+/92217/2#message-f55091795e7cde9d75adc00ddb69451121b644f6
--
Best regards,
Mike Kaganski
More information about the Cygwin
mailing list