On 2023-01-09 23:14, Paul Eggert wrote:
my UI is based on time, as the system is most likely to have a valid UTC time, so the user will first select the current wall-clock time and then a location for that time.
Nice idea.
As the sincerest form of flattery, I implemented something like that in TZDB's tzselect program by installing the attached proposed patches. This sort of implementation via the shell would have been pretty slow decades ago, but with modern CPUs it should be fast enough for human users. Here's a sample shell interaction using this new feature. Although not as good as a GUI, I hope this helps inspire other uses of this idea. And perhaps if we ever get around to implementing the simplified interface for users who care only about timestamps from now on, tzselect can get even simpler when exploiting this idea. $ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", "TZ", or "time". 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) coord - I want to use geographical coordinates. 12) TZ - I want to specify the timezone using the Posix TZ format. 13) time - I know local time already. #? 13 What is the current date and 24-hour time? 1) Mon Jan 16 15:34 14) Tue Jan 17 02:34 27) Tue Jan 17 10:34 2) Mon Jan 16 16:34 15) Tue Jan 17 03:34 28) Tue Jan 17 11:19 3) Mon Jan 16 17:04 16) Tue Jan 17 04:34 29) Tue Jan 17 11:34 4) Mon Jan 16 17:34 17) Tue Jan 17 05:34 30) Tue Jan 17 12:04 5) Mon Jan 16 18:34 18) Tue Jan 17 06:04 31) Tue Jan 17 12:34 6) Mon Jan 16 19:34 19) Tue Jan 17 06:34 32) Tue Jan 17 13:04 7) Mon Jan 16 20:34 20) Tue Jan 17 07:04 33) Tue Jan 17 13:34 8) Mon Jan 16 21:34 21) Tue Jan 17 07:34 34) Tue Jan 17 14:34 9) Mon Jan 16 22:34 22) Tue Jan 17 08:04 35) Tue Jan 17 15:34 10) Mon Jan 16 23:04 23) Tue Jan 17 08:19 36) Tue Jan 17 16:19 11) Mon Jan 16 23:34 24) Tue Jan 17 08:34 37) Tue Jan 17 16:34 12) Tue Jan 17 00:34 25) Tue Jan 17 09:04 13) Tue Jan 17 01:34 26) Tue Jan 17 09:34 #? 1 Please select a country whose clocks agree with yours. 1) Niue 3) US minor outlying islands 2) Samoa (American) #? 1 Based on the following information: Mon Jan 16 15:34 Niue TZ='Pacific/Niue' will be used. Selected time is now: Mon Jan 16 15:34:25 -11 2023. Universal Time is now: Tue Jan 17 02:34:25 UTC 2023. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='Pacific/Niue'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the ./tzselect command in shell scripts: Pacific/Niue $