From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id GK6BK08Pw2MJ2AAAbAwnHQ (envelope-from ) for ; Sat, 14 Jan 2023 21:23:43 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id gGeDK08Pw2P0PQEAauVa8A (envelope-from ) for ; Sat, 14 Jan 2023 21:23:43 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 88CAFEDAB for ; Sat, 14 Jan 2023 21:23:43 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pGn3n-0006b5-BA; Sat, 14 Jan 2023 15:23:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pGn3k-0006aw-Bx for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 15:23:24 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pGn3h-0002I9-5j for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 15:23:23 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9so26648007pll.9 for ; Sat, 14 Jan 2023 12:23:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:in-reply-to:date:subject:cc:to:from:user-agent :references:message-id:from:to:cc:subject:date:message-id:reply-to; bh=WRWquRr/p8BNO/56Z8TEYrH27Ny2xsG4/he3O4MQyPM=; b=MNWTaB0mxsypbMUDQ/rkfgmJmzQfET++xz0oFVz8L0yWaZjXT3qBrxhhKIGfgw9gWr iVCsXE2ABbdtZVptDjc4SLL4svWNEDpf1kkC9g/sbjEusUjQmElvXjcpZNFRD5zni1xC EDnkoB6Y/KDGkexH6bINE/mSC1dd+ngJcW/pVOoZjVy+I25qlor0ANIut3pG1PxlHAP7 oK+jEaBOmGqxreZ/hyUz8QU+n9JbEUllJXSg/XzgYaHfPUaiy0YuWcjKsgmelL9pF44Y O8B+qgBvayWATpy34ZVEnwJPN/AWwdt9bLxqH39f8wnjbBc21lhvnxyJtGtaXoOq8U+O vbwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:in-reply-to:date:subject:cc:to:from:user-agent :references:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WRWquRr/p8BNO/56Z8TEYrH27Ny2xsG4/he3O4MQyPM=; b=Do8xn/X3nonN/hCp/1TLf+P5SmVG3Qk9FaYreZlZpUTp6XyKsGmgDvgmMZb4DVmiJp e5QYF6iVYM4mqXsetD+6EPbQNOiT5q2i53nDv1r+Iv9ayeJ0yqCrV6Vr/bBYyAk/cm8k 6BG1uyElXNM1NHwVtFeuZ2JkkXXEbROuU2BKBYBNo7SQ8LYOidloOvr98CSWO8ARBE/g botydYaKeFRKbOlx4MOThEVdzwgMhyb65jJV4uA2N1HWop01l0hXkfZFz8GLXyYc2ooj ymZFnJ4tsdMNJWPLkK3fTeQHKMyQBGTwNEdgh1DXJ6p3TN3vEtI+QcLs7cTAY8Eed65F uWiQ== X-Gm-Message-State: AFqh2kqiZKD5iur2JeTukPC5+waRSJLZ/bUFmGTVpEqT6bRw/Kg+zKDx kE/JGrZAbzZ7IbiqFrsGwuH+eqNRQGc= X-Google-Smtp-Source: AMrXdXsMPjH+xHlNSA8QeAXxAuo7PldbvW5A/CEfoZFzP+CTQL6OMebSgRLgHV5efDTAPeiI5hN2KA== X-Received: by 2002:a05:6a20:c6c8:b0:b8:50fd:fd1a with SMTP id gw8-20020a056a20c6c800b000b850fdfd1amr1523230pzb.19.1673727797481; Sat, 14 Jan 2023 12:23:17 -0800 (PST) Received: from dingbat (220-235-140-148.dyn.iinet.net.au. [220.235.140.148]) by smtp.gmail.com with ESMTPSA id u11-20020a6540cb000000b0046ff3634a78sm13384929pgp.71.2023.01.14.12.23.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jan 2023 12:23:16 -0800 (PST) Message-ID: <63c30f34.650a0220.498b8.4573@mx.google.com> X-Google-Original-Message-ID: --text follows this line-- References: User-agent: mu4e 1.9.12; emacs 29.0.60 From: Tim Cross To: Max Nikulin Cc: emacs-orgmode@gnu.org Subject: Re: [FEATURE REQUEST] Timezone support in org-mode datestamps and org-agenda Date: Sun, 15 Jan 2023 06:43:19 +1100 In-reply-to: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=theophilusx@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=MNWTaB0m; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1673727823; a=rsa-sha256; cv=none; b=VMClakuxIgQLBw+NC+6zfL2xNkqCaG6zSsSeQDpesf29ohiMbSmb+cMgEal3ak1QUXC/bF 8R3Ad/mDfO52VvqDRX38z8dE3Sov5b6A12d6ZpGqiLkQouNPvTP/7fY9i7ZtfT3BGj9sYN nA/0YUTK297emwixvHYuAABkDDihAfC9KwsI7nDAzKa4otyn5NdrcIr5QgdhlICS/ou+Lo C2zRD7LUxIUeyjSW0WJ9D+dXrDMCMggE0BnOeIem+gOUmbroKVz9Z3+YT16KSNMiXJ05UB TQLz7E8E40fSdSBzBnN34m4rPN37/EfGRhm0P8OAmhE+MVhVa80MbP9EoX75cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673727823; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=WRWquRr/p8BNO/56Z8TEYrH27Ny2xsG4/he3O4MQyPM=; b=miojvZVsekRk4jTn1rxxn2snqxNCqXMd4hYjkExEOR4kV8x59Y49oHuwadcqiXZUkGKKWN Ra+LY0RZex8wZndVcYxbTtdfAL8k2VBuRIHi6n5+IGsSBA0/lA02uyTG/TTg2Bp5aJYEdP kIcQ41NVavBcoLQ3jNc/ebI3kzD4KInM8auoeocVLwWUxM4tPq3xu4W+bKFHVDsb2K5/Ll J2H56nKrWO/smtl1DXe3YWHkIO4ticE8rWjSObUGDE5qCNMTdbj/4nEZJsrshGl+FbIg5p zLX1a1hItIPil/HqgzqvBtUgmy93cAIYovGWPS8kA3BO6Lt3xcXWQybTIOKjKw== X-Migadu-Queue-Id: 88CAFEDAB X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=MNWTaB0m; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com X-Migadu-Spam-Score: -8.06 X-Spam-Score: -8.06 X-TUID: JS/mAH7fpoMz Max Nikulin writes: > On 14/01/2023 20:08, Jean Louis wrote: >> * Max Nikulin [2023-01-14 10:14]: >>> Let's assume <2023-01-15 Sun 09:00 +1> >>> >>> It may be suitable for timestamps in the past, but future is more tricky. >>> There is no problem if you are going to watch Lunar eclipse. However if your >>> plan is to attend a local event there is a chance that you will arrive at >>> wrong time. Sometimes offset of timezones is changed and it may happen >>> between the moment when you added a scheduled time and the moment of the >>> event. >> Can't follow you. >> with "+1" I would say it is time zone. >> Basic point is that users shall learn to express themselves by using >> time zone. > > "+1" is not a timezone, it is current offset shared by several timezones. You can not > assure that time offset at a particular location would not change due to new > administrative rules. > > E.g. Europe/Berlin is a timezone, but, strictly speaking, is still > underspecified. Sometimes timezones are split into smaller parts. Yes, this is a problem. We really want a symbolic TZ specification and we would need 'smarts' i the timestamp generation code that is able to handle potential offset changes due to daylight savings transition etc. Even then, the transition time can change between when the timestamp is set for and when it actually occurs. Unfortunately, the common abbreviated forms like EST, AEST etc are inconsistent here. Some places will have a standard and a daylight savings type i.e. AEST and AEDT, while others will have just AEST. TO make it worse, two locations with the same time zone offset my use different versions i.e. Australia/Melbourn is AEST (+10/+11) and Australia/Sydney is AEST (+10) and AEDT (+11) and Australia/Brisbane is just AEST (+10). If everywhere which has daylight savings ensured they used a different abbreviation for daylight saving and non-daylight saving times, life would be easier, but they don't). Then of course there are many countries which don't have a symbolic letter abbreviation i.e. just have e.g -05 as their abbreviated TZ name. It is this and other related reasons why just relying on Emacs' internal API for times and dates is not sufficient. The abbreviated times have ambiguity and the full timezone specification is cumbersome and ugly. Even worse is that issue won't be shown up as failures - you will just silently get wrong results. If on the other hand all the timestamps were in UTC, you avoid lots of these issues. However, you would then also require a 'view' layer/overlay which would take the UTC time, apply whatever the local TZ is and show that result as the timestamp. THis would avoid things being out by an hour due to daylight savings transitions and would mean the user would see timestamps relative to whatever their local time zone is, regardless of changes in location which has also changed time zones. The problem with this approach is that now you have lost the 'plain text' nature of org files. When editing the value, the user would need to remember the value stored in their org file is UTC, not local time. Many exporters would also need to be updated to handle conversion to local time as well.