ObjFW  View Ticket

2023-08-06
12:43 Ticket [250e7d6f5c] Properly translate file system timestamps between local time and UTC on AmigaOS/MorphOS status still Open with 5 other changes artifact: ee18cc64a3 user: js
2020-12-22
23:22 New ticket [250e7d6f5c]. artifact: de47bbcb70 user: js

Ticket UUID: 250e7d6f5ca98ed121ea62c11738ed4024028640
Title: Properly translate file system timestamps between local time and UTC on AmigaOS/MorphOS
Status: Open Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Resolution: Open
Last Modified: 2023-08-06 12:43:21
Version Found In: Milestone: none
User Comments:
js added on 2020-12-22 23:22:18:

All file system times are stored in local time on AmigaOS / MorphOS. Currently, DST is not properly taken into account for this, and just the GMT offset is applied. Solving this might require including the DST part of a timezone database.


js added on 2023-08-06 12:43:21:

There is really nothing that can be reasonably done here. AmigaOS only has a timezone as an integer GMT offset (that is wrong during DST!) and a country, but not a named time zone. That is not enough to determine whether DST was in effect at a given time, even when shipping a DST database. For example, Australia can have a DST offset of 30 min, depending on region. But the non-DST GMT offset for that region is already not an integer number of hours, so a user could not even set it! So there is absolutely no thing to detect what should be done, even with heuristics and a full DST database. It's just broken and could only be fixed by having a separate setting just for ObjFW apps that actually specifies a proper time zone. Which most users will probably not set. And still doesn't tell us if the user manually adjusted the local time for DST already or not. There really is no good solution here.

MorphOS does allow a user to pick a named time zone, so something could be done here. But that solution will not work on classic AmigaOS.

Leaving this open to at least find a workaround on MorphOS, but removing the 1.0 milestone.