From: Max Nikulin <manikulin@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Two problems with export to Google calendar
Date: Mon, 12 Dec 2022 23:53:04 +0700 [thread overview]
Message-ID: <tn7m9h$1u7$1@ciao.gmane.io> (raw)
In-Reply-To: <87sfhkg1sd.fsf@localhost>
On 12/12/2022 21:00, Ihor Radchenko wrote:
> Max Nikulin writes:
>
>>> By default, ox-icalendar takes the value of your TZ environment variable.
>>
>> I think, in most cases TZ is not set, so (format-time-string "%Z") is
>> used to get abbreviation (that is ambiguous).
>>
>> On Linux we may try
>>
>> timedatectl show --property=Timezone --value
>
> According to POSIX standard
> (https://pubs.opengroup.org/onlinepubs/9699919799/), we need to use "TZ"
> environment variable, when present. Otherwise, fallback to defaults.
I do not try to dispute such statement. The question is what should be
taken as the default.
> This is exactly what ox-icalendar does. If TZ is set, use it. Otherwise,
> use `current-time-zone'.
...
> The issue in this bug report is that TZ is actually set. Ambiguously. In
> OS. We cannot do much about it. Outsmarting system settings is not a
> good idea.
The TZ environment variable is not set and that is the issue. Otherwise
the .ics file would have
X-WR-TIMEZONE:Europe/London
The problem is that there is no API to get time zone identifier in elisp
because such function is missed in libc. It is possible to get only
BST/GMT (depending on current season).
Identifiers like Europe/London allows to get history of time
transitions. (format-time-string "%z %Z") and (current-time-zone) may
only report time offset and ambiguous abbreviation at particular moment.
Return values of these functions may vary for different timestamps in
the calendar file. If list of time zones were available then it would be
possible to iterate over it and to match particular time zone by
abbreviation and offset for most of zones (perhaps some ambiguity would
remain).
Actually `current-time-zone' is an example of fragile API for *current*
time. Offset is valid for particular moment. There is no guarantee that
offset would not change between obtaining it and applying to a
timestamp. So the only safe way of using this function is with the
SPECIFIED-TIME argument. In such case *current* in the function name is
confusing.
So in my previous message I was considering feasibility of some
platform-dependent code to determine time zone when neither TIMEZONE Org
file property nor TZ environment are specified.
next prev parent reply other threads:[~2022-12-12 16:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-07 11:30 Two problems with export to Google calendar Neil Jerram
2022-12-07 11:52 ` Neil Jerram
2022-12-07 12:56 ` Ihor Radchenko
2022-12-07 14:00 ` Max Nikulin
2022-12-12 14:00 ` Ihor Radchenko
2022-12-12 16:53 ` Max Nikulin [this message]
2022-12-13 9:56 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='tn7m9h$1u7$1@ciao.gmane.io' \
--to=manikulin@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).