emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FEATURE REQUEST] Timezone support in org-mode datestamps and org-ag


From: Max Nikulin
Subject: Re: [FEATURE REQUEST] Timezone support in org-mode datestamps and org-agenda
Date: Sat, 28 Jan 2023 13:26:35 +0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

Sterling, thank you very much for the list of references. I was not aware of EDTF activity or the proposal for JavaScript.
I do not mind to have better precision for timestamps. Minutes are too 
coarse. However I would consider with low priority.
I would prefer to postpone some discussions now. At the current moment 
just be aware than one more person may have another opinion. Redundant 
fields are useful for humans, in addition, they allow to detect 
inconsistency. Date and time format with spaces are more friendly to 
humans as well. "T" hampers readability. So I feel some kind of internal 
conflict trying to achieve following standards, backward compatibility, 
and human readability simultaneously. I am unsure what is the proper 
solution.
The following is what I consider as more serious issues:

On 27/01/2023 13:06, Sterling Hooten wrote:
   Duration (object)
         as a quantity characterizing a time interval. These can be
         written in different formats.
Interval, duration, elapsed time are tricky. I do not have preferences 
whose definitions we should follow. Just an example: (info "(libc) Time 
Basics") https://www.gnu.org/software/libc/manual/html_node/Time-Basics.html
Notice that 1 day does not necessary means 24 hours. Depending on 
starting day (e.g. before DST) other relations may be used, either 23 or 
25 hours (usually). It is still 1 day. The way to specify interval 
should be chosen depending on application.
Another case is January, 31 + 1 month. It actually may mean last day of 
January, so expected result may be February, 28 or 29. This case 
February, 28 + 1 month (the same interval) is March, 31.
   Local system time
         Local system time is determined by applying the system's time
         zone offset and year offset values to UTC. The Time of day
         system value displays the local system time. Local system time
         and system time are used interchangeably.
"System time" is often used in the sense of hardware clock and 
originated from the times when DOS or Windows required local time.
   Time Zone
         A place/region.
Do you consider e.g. Etc/GMT-8 or UTC itself as a time zone?

   Floating time
         A wall time value without time zone or offset information. E.g.,
         2023-01-24 or 6:45pm.
A potential source of confusion with timestamp in seconds since epoch as 
a floating point number, see `float-time'. (info "(elisp) Time of Day") 
https://www.gnu.org/software/emacs/manual/html_node/elisp/Time-of-Day.html#index-float_002dtime
Org must first support
fixed/absolute time instead of just floating time.
Am I wright "in addition" is applicable here in the place of "instead"?

• Design and implement the time zone aware calendar system This is a
   separate project.
Will not such decision ruin "every Wednesday at 3:00 PM" at the moment 
of DST transition? I would vote that IANA DB should be used for 
calculations despite I have not seen a library with perfect API. Though 
libc with some tricks may allow to do most of tasks. (Even in presence 
of limitations such as unavailable identifier of system time zone.) This 
is the main point of my disagreement. If real time zones are not 
implemented from the beginning then the will be never supported, so the 
whole bunch of code will be requiring throwing away while keeping 
support of some formats to read old files.
   • We are able to defer to experts and 35 years of knowledge rather
     than debate among ourselves
Experts may generate enough pain such as requirement to not support IANA 
timezone DB as it was in EcmaScript 5 (Chrome followed it, but in 
Firefox conversion between local time worked correctly).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]