From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 0KByCI+3wmNYcAAAbAwnHQ (envelope-from ) for ; Sat, 14 Jan 2023 15:09:19 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id oEcaCI+3wmP9MAAAauVa8A (envelope-from ) for ; Sat, 14 Jan 2023 15:09:19 +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 EA80529819 for ; Sat, 14 Jan 2023 15:09:18 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pGhD4-00070b-NA; Sat, 14 Jan 2023 09:08:38 -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 1pGhD3-00070D-HR for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 09:08:37 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pGhD1-0001oA-CK for emacs-orgmode@gnu.org; Sat, 14 Jan 2023 09:08:36 -0500 Received: by mail-pl1-x62a.google.com with SMTP id c6so26178068pls.4 for ; Sat, 14 Jan 2023 06:08:34 -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=jiGLPIIqKkYXjawBcRQu5m+pwkOVvm8jOa3910Fq/Yw=; b=VpeYBsdf532Sg8BxO/Fne5LM1tXdfo7vK7cvvhuP0lEhzcuz4HqltoW5+Q5VAB7do7 atR/ngoY6QQK3eLrdImRM8CliNvK6ViaL42kApSu5uNceIFrmMuq2LqlD/kfwA5AsChM F27vDmZk289bd1fEMxQK51RsJ80mlhb7HCsue/FCwQ0NT0GeDp7Tb+syqdiLBBrVX+I7 5ykOYo/Z3oBYOOopU0ged3QOhIXcyvzN4JBVGSewH6psr1Hm6W5R0lkAAwNCyS1b8+3M OaWZ1w4skMPYPuEAr0uiYGedCuvQHd9GrzxHlN/nZ81NHlGB5YcF4ecGALqSJb6OR7Hc u3iw== 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=jiGLPIIqKkYXjawBcRQu5m+pwkOVvm8jOa3910Fq/Yw=; b=mv3CTYJRbPW0FIUTZ3VYwSeKq3qGs+GKXaOi5zZSLmpUeRRWwQWFIfw66jeeoulgS4 lm4uHjj6+QR+wTqfCxQS9CgdqP6aUQ5L7JrBGsZiEl6H927G8kV8aazV5duQW3XyRmlD JP+nCYxwB2OWrePVWLo7PwxTaYLRLNgsVKL8PHwzv31FhrNRKZLvvjqP3TVpGNTFzTC0 PZ+pSTYu7Xq3aTM7CgCpR9N/G/9ReZJG1DFqStGMD0VffUr1vFNOGZacbqKDH3SGCsL0 9CLvFt8h+MvwfH+Hvba6n8SrGAiUtaTBgFqjTiaTIFyvytyPxZh7WIFi5Wd1v4OLeCfR pM3w== X-Gm-Message-State: AFqh2koS+G8zHfSSoZSUKJWxZo8esMvvjnfu0OeRYfRFgPIEvLm4w/eu +zpFCnRfmZlGWbRQD3iOqWGiaR0ZTR4= X-Google-Smtp-Source: AMrXdXvCLuUBSVNP+dGzeLl6PyHuQitHJilexTH9v+RDxpOqJKsn4jiExbNE5n2mR61eXnDAx7TLrQ== X-Received: by 2002:a05:6300:8187:b0:b6:3f0c:8ef0 with SMTP id bt7-20020a056300818700b000b63f0c8ef0mr15846926pzc.15.1673705313211; Sat, 14 Jan 2023 06:08:33 -0800 (PST) Received: from dingbat (220-235-140-148.dyn.iinet.net.au. [220.235.140.148]) by smtp.gmail.com with ESMTPSA id n11-20020a170902e54b00b0018c7a5e052asm15950657plf.225.2023.01.14.06.08.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jan 2023 06:08:32 -0800 (PST) Message-ID: <63c2b760.170a0220.56455.a114@mx.google.com> X-Google-Original-Message-ID: --text follows this line-- References: <63c287ca.a70a0220.4bd14.873b@mx.google.com> 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 00:50:04 +1100 In-reply-to: MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=theophilusx@gmail.com; helo=mail-pl1-x62a.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-Seal: i=1; s=key1; d=yhetil.org; t=1673705359; a=rsa-sha256; cv=none; b=C0Beyte6gqyOu9p/Mw9wKcaG/KQ3IkO6oO0QItcyl9BATV19gr3qD+7nlFGNrHB79KrLN/ VBrkau3vqT83FU7PR+osb9zqhkXesZwXMeE3ehRExekbrtm/E1mG1OTQ2jeJOcNgV4Nrir RR/dHYVTyZOfrFCEHkHOYnbRadYZgMG41IjkpFkDfqfx5V99+EEAwKn33uHfjdQMVTgYJH kiTSfXqlAZNc3xRh6YTOCnJ60x/atep8rJQmnykCZsPBcAgz1dS4CwB9r5RjeCE2T52Hif wbSYZBK5HuE0qxMcPOUv5awrpB1dF04own4ajA2ctzRee8dVuwy32Bu2JYaESQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=VpeYBsdf; 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-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673705359; 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=jiGLPIIqKkYXjawBcRQu5m+pwkOVvm8jOa3910Fq/Yw=; b=jBa+or/exj9JgZtS1JSGpuZ3pfh54TDYf3qtnPRphHcOi2ApTaKrJFKo3Y4ezhvRDrWzDN 4pvaZrpfW1V4wpkc9xU++7ElzFmTq1HOJml445qyinXy4YTwSVrrYZSTJUiPs0X1JWalls FryPy0xYSB2Y99Tnf6b9lxcyG63jvy3ex98L8YfCFidYAch18H6iPzKx3DG7sxaYjbiBwW bJ8BRsfSUfbU1ymh/dPbVpbYTR0SM/XqRGvZ+V9P9R/O4xM4KU3b9GJLLYke+ja/znlUNg vljm0c0Ykgt01MV1LNb+B26txrMEcKD1w8IZGtNKQN2NOPJlTJL6jCVsu2+z2Q== X-Migadu-Spam-Score: -6.26 X-Spam-Score: -6.26 X-Migadu-Queue-Id: EA80529819 X-Migadu-Scanner: scn1.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=VpeYBsdf; 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-TUID: c0firf4l+rJ9 Max Nikulin writes: > On 14/01/2023 16:32, Tim Cross wrote: >> If org was to add TZ capabilities to timestamps, the underlying format >> would have to be UTC. > ... >> can change based on various criteria, including political whims >> (e.g. Australia eastern DST transition date was changed in 2000 because >> Sydney hosted the Olympics that year). > > Due to this particular reason storage format for significant fraction of future timestamps > (but not always) must not be in UTC > > 2024-01-14 Sun 21:14:58 ACS (+0930, Australia/Darwin) > > is not the same as > > 2024-01-14 Sun 11:45:58 UTC (+0000, Z) > > despite currently it is. > I"m sorry, but I don't follow. The UTC time is the only time whihc is not affected by daylight savings transitions, so is the only stable metric. All the others are relative to that time but can change based on things like changes in DST transition dates/times. When DST transitions occur, time is lost/gained wrt the local time, but real time and UTC time do not change. So when DST starts here at 2am on the llth it is 5pm on the 10th UTC. At 2am locally, we jump to 3am, losing an hour, but the UTC time is still 5pm. The meeting I had scheduled for 10am with friends form the US was at 0:00 UTC. It is now at 11am local time, but still at 0:00 UTC, however, I will likely fall asleep in it because instead of my normal 7 hours sleep, I only got six despite going to be and getting up at the same time. > Depending on use case the same particular fields of timestamp may be authoritative or > derived for user convenience from other data. > > UNIX timestamps in seconds in UTC timezone almost unavoidable will be used underneath, but > operations like "start of next day" require non-trivial computations to find if time zone > offset changes in between. Yes, but if the underlying representation is UTC, then all you have to do is apply local TZ data to get the local time. THis is how postgres works. You just hav eto ensure the TZ data you get is the TZ data for that date in that locale.