From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 4LrnIlSJw2NrkwAAbAwnHQ (envelope-from ) for ; Sun, 15 Jan 2023 06:04:20 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id EPMMIlSJw2PVEQAAG6o9tA (envelope-from ) for ; Sun, 15 Jan 2023 06:04:20 +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 4A9FE47333 for ; Sun, 15 Jan 2023 06:04:19 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pGvAr-0003X3-Mw; Sun, 15 Jan 2023 00:03:17 -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 1pGvAp-0003VZ-D5 for emacs-orgmode@gnu.org; Sun, 15 Jan 2023 00:03:15 -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 1pGvAl-0000cl-DX for emacs-orgmode@gnu.org; Sun, 15 Jan 2023 00:03:13 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pGvAj-0000oH-T8 for emacs-orgmode@gnu.org; Sun, 15 Jan 2023 06:03:09 +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: Sun, 15 Jan 2023 12:03:01 +0700 Message-ID: References: <63c287ca.a70a0220.4bd14.873b@mx.google.com> <87pmbh1hgx.fsf@localhost> <63c2b8e4.a70a0220.e3b6d.0051@mx.google.com> <87edrxyyeq.fsf@localhost> <87bkn1yx59.fsf@localhost> 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: <87bkn1yx59.fsf@localhost> 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: 26 X-Spam_score: 2.6 X-Spam_bar: ++ X-Spam_report: (2.6 / 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.001, 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-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-Seal: i=1; s=key1; d=yhetil.org; t=1673759059; a=rsa-sha256; cv=none; b=ir/K3K+VkNQkHfdhcPV6JCHaGwEnX/7Sh6VuRX2fXWCU88PWCL4ZEifEOEOZbN+FNYiFeF kGf1J38jkzc772/rYaTmsT9XxQz4kCMKjjRdwQXSKt9+vNdUNBi7LaiwF+gD6q2PpRLASc yzi57QCs7m0Gf3RMQZbDQT4bxazZegcMhcoY1vDWG8jAWA7idwsRCmtnI/IhrPcAPUonaC MlynkBsMrjb9uvShXxxErW8pnM8wPCTBvQ0kVebBxeS6Gz5M6rw7dT000YNz3Q96jef5vu xvy/7i9peKtPoneLvtpB/8UbvumeDOdxhosBV1FuqV/Z4eKgAtCwjYLF6Q7Y+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673759059; 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=Sk0kkbN6tqjY7LkYG7ltKBZzujaSTk7FBK4eRfwUF4s=; b=OvcvJZGLu8b35t5s7yDCdIkDedGtT+ZrglcNJw8jWC0xulcgGAKykeLBP9YlsX34z17XCv AMCTDpVWwH0i1zwjazl/9fOZoBUgwUVc35WG2rhjnDL2tqitGE+kMziGQOSEPvCIulKS4a IDWK3aM0Q5m2teywniyrFuw18ffrOhjXnLF5zcVO87v0O3+/AFb5zMnFXjP5CRaPJ/HuCF zUS0EWWJWUhP1f3aLO6PJq3QJbBPPuLGlda4b2WiVt69EqzQmDiEajJL7ooX5UyWLpJ32s TZh3ELr50V/tv9sEMSgOsDrEn3XcILnUDUR1SlqbRudmnU/7LyHFXcEuWsj1Lg== X-Migadu-Queue-Id: 4A9FE47333 X-Migadu-Scanner: scn0.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-Migadu-Spam-Score: -1.32 X-Spam-Score: -1.32 X-TUID: mgf8YpA/GOod On 14/01/2023 22:05, Ihor Radchenko wrote: > writes: > >> Now there's still enough work for the applications to do: presentation, >> parsing, disambiguation, if necessary asking the user for help. Someone >> mentioned PostgreSQL -- this is a nice example of what can be done beyond >> the (comparatively!) boring details of time zone management :-) > > Do I understand correctly that PostgreSQL insists on using timestamps > with time zone info in favour or ordinary timestamps? Exactly to avoid > issues with the same timestamp pointing to a different real time from > epoch depending on the current OS time zone setting? My points of what that wiki page tries to say: PostgreSQL has better support of timezone conversions than some of other databases or middleware libraries. That is why taking advantage of the postgres feature allows to create more reliable application. The recipe is to allow postgres to store timestamps in UTC and to delegate it time conversion by specifying "timestamp with time zone" type. "With time zone" does not mean that original time zone is stored. It is converted to UTC from explicitly specified timezone or from the one set for client's connection. Some postgres time related types was added just because they are required to pass SQL compliance tests or to allow easier migration from other databases. They should be avoided when possible. I totally agree with the recommendation to use timestamptz for data related to something in history: billing, bank transactions, etc. However it is call to trouble for planned events and schedules. Not frequent, so almost untested use cases. If I remember correctly, another type, timestamp (without tz), may be cast on demand to any timezone (stored in another column or passed from application). So it may be used obtain correct UTC timestamp after update of timezone database. > Thinking more about this, I can see how it can be important for > clocking, and similar auto-recorded information. Users may be surprised > to record clocking on some task yesterday just to find the clocking data > in future upon travelling from Singapore to San Fran. In the case of crossing international date line it is certainly an issue. Users often crossing of timezone border with several hours time difference may need to specify timezone explicitly as well. For others timezone change history should be enough to calculate duration of clocking intervals from regular local time.