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 kEv9HP9VwmNR3AAAbAwnHQ (envelope-from ) for ; Sat, 14 Jan 2023 08:13:03 +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 kAT0HP9VwmPXOQAAauVa8A (envelope-from ) for ; Sat, 14 Jan 2023 08:13:03 +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 18C2C1F995 for ; Sat, 14 Jan 2023 08:13:03 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pGaiC-0004rv-92; Sat, 14 Jan 2023 02:12:20 -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 1pGai8-0004qq-Ui for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 02:12:17 -0500 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pGai7-00041W-CS for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 02:12:16 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pGai3-0007w9-P4 for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 08:12:11 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [FEATURE REQUEST] Timezone support in org-mode datestamps and org-agenda Date: Sat, 14 Jan 2023 14:12:04 +0700 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 27 X-Spam_score: 2.7 X-Spam_bar: ++ X-Spam_report: (2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.092, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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-Seal: i=1; s=key1; d=yhetil.org; t=1673680383; a=rsa-sha256; cv=none; b=ZZi1jq2ITumHZlNAcBv9d2AssIfzPHvuHcGrZdPVj0FR0astG/QoIorqQIqwLL1HacF37Z 9u0vGfoVv6CrOdpsLJQegy3H0mxEN3Fy6PSdGImYJ5wWrD5gD+jxBRj3Ke5kP8k4JmmD9L K+6T4Z+IAAFCisK2RbM8mbZxVMPPxDRhJs+/sJVWdIyfQ/76JfD/NdqpBepJFymJF9ah27 UyFpmL5maHEGHozjcVkqu9f34ANxyw0/ZfpRvHTWUbwa49Iz/TIi2pv3cX8j29kpF+e+Gx roFsIK6r3I4t2ssk7k2qmMs22YHRHIOnyg4w6W+1uv9a+Cqb9hjvVgfEw76ilw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; 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=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673680383; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=AWasKd31pvSl0u8ad3v8BLqFfNEIwg2dnpnhjarTniY=; b=qBbqJ7DAHKuPx6be16uPf9rMVWNGAihrGqFy7Z/E2vXyul4MtuVKBmLhaRW8z/WXdWjO6E 92qnsekVSqn56CWOQutfbq++/dviA+jn7/kQTEnUIoXMZOQuZ+mlihARfJkCmd2bXUmP9I hgKO20/DV7kYIjU79VUKexqHOlaiSI2KqtlL4+5fVxIL6DbGN+j75jjXN4FcK4y+CpFF6w W4poEFdoajEKKcsLNgGK2PWZwpf/lFoOM67pfMR2ltRIWDISaLninA6BxAdGebfNVOMqQp hYj/bO/JossHeH1xbsku9jn49IhlVpUzfwelTnRZzT1rjvBxCfaurYievt2Drw== X-Migadu-Spam-Score: -2.31 X-Spam-Score: -2.31 X-Migadu-Queue-Id: 18C2C1F995 X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=none; 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=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) X-TUID: ycUGl8PLsHfU On 14/01/2023 02:06, Jean Louis wrote: > This is good for review as related to PostgreSQL database: I agree that PostgreSQL is an example of good implementation of time-related calculations. > https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_timestamp_.28without_time_zone.29 I do not find this section enlightening in the context of this discussion. It is more related to storage formats of DB than to higher level aspects suitable for applications. > It would mean that timestamps become time zone aware. Something like this: > > <2023-01-15 Sun +1> Welcome to another set of issues. First of all, you have just date without specific time point. It may mean particular calendar day irrelevant to time zone. ICQ had a bug when they decide to store birth dates as timestamps. Significant fraction of users received automatic greetings on wrong day, a kind of off by one error. So dates must stored as dates omitting time and zone. 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. Notice that Org timestamps already associated with a timezone, the one is set in libc (system timezone, or the one set for particular process). So daylight saving time and administrative time transitions should be taken into account. So Org timestamps may be ambiguous (mostly) 1 hour per year around backward time transition, e.g. for timezones having DST. This case explicitly specifying time offset helps to avoid uncertainty.