Note: this only stores the local timezone and keep it in your timestamps. It'll replace any timezone information by your local one. But at least it'll store your current local one.
Note2: all timestamps will work to my knowledge, but time ranges are then ambiguously displayed. Thanks to @He Yifei 何一非 to bring that up.
This is what I did:
(setq org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M %Z>"))
The important part is the %Z
.
default is (from orgmode source):
(defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
"Formats for `format-time-string' which are used for time stamps.")
With this setting, all instances of timestamps in orgmode
that I use and can think of get the timezone information added (ie: <2020-09-15 Tue 09:00 CEST>
):
- modifying dates by hand and using
C-c C-c
(timezone will get added if missing)
- Clockin and Clockout with
C-c C-x C-i
/ C-c C-x C-o
CLOSED
, SCHEDULED
, DEADLINE
org-time-stamp
when inserting time and not only date info
And I didn't notice any issue, except that time ranges are not really useable (I don't use them). I'm using quite extensively all the clock/timestamps. This setting is available in orgmode
for a very long time, before 2008 for sure, according to org
git repository.
Let me add the fact that you should probably NEVER store naive timestamps (without timezones) anywhere. It is a pity that orgmode does this by default. Thankfully, it is easy to fix.