From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.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 YA7FCN/h32MdngAAbAwnHQ (envelope-from ) for ; Sun, 05 Feb 2023 18:05:35 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id MLiqCN/h32N5hAEAauVa8A (envelope-from ) for ; Sun, 05 Feb 2023 18:05:35 +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 CB3C53414F for ; Sun, 5 Feb 2023 18:05:34 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pOiRR-00046d-R3; Sun, 05 Feb 2023 12:04:37 -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 1pOiRP-00046N-ME for emacs-orgmode@gnu.org; Sun, 05 Feb 2023 12:04:35 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pOiRM-00027F-Sb for emacs-orgmode@gnu.org; Sun, 05 Feb 2023 12:04:34 -0500 Received: by mail-pl1-x635.google.com with SMTP id h15so2557057plk.12 for ; Sun, 05 Feb 2023 09:04:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:cc:to:from:references :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=6Q7Src2t0Ac0FzYNkkPi5HYcXKirE4fro3VmaXiixB0=; b=F7Rv3LprAj5bdjpncvvipTO1N3pDesmXw3gznkH6z5hSN5/hfhT24l2bvqjA+oSLVR Fc32rvzI62ZlsEGfIoGfEZXeMnWzcvrHMUjci4T4MRFO8rY80sa6pr9pN5Ujv2C8tiPO 67E8yq6huaHw2Tc6i/hTR0kiQvHgBO6e2M21TkGZiDjmUkfz58T+6hEvFdUv1JMBzl2U eqdzA0C1ienHCvcSVCJ8R/huGohuICN1nyUiQRP2QhRdlzJYyCXs0upFzTgXhwl4Yvy3 qD4fT5KZ7a9LOKyBYSVvM9orDHgaeMjdOqMWovdDcAqVeYsiJhdJFlwun64hyORu0YsW +NnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:cc:to:from:references :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6Q7Src2t0Ac0FzYNkkPi5HYcXKirE4fro3VmaXiixB0=; b=ASLgmz3ZpKjvmiSLOEK/M6sHLBN3Ds6vezPCYBMIiHhmdyQEwQkbEzLXOtG5eU38Yn xGk9xCT6NtEaI+bdN9ZDoMjkAdLI1NOfHzucL03JckmiphAPU7edC9uzCjdtphMIWzbN Di8eMJTmgisswKyJSjnXZKSAStilJt4S9ShdHVxKJKbp87ML+wX5PDzDKk7g81NJHlRt pEgeqOMlZ54AlSScmFUf0Zz1DrLYJdc175HgovxRsCyWy+2bs2oJFqm/fF9vwtG72Qlm pzOR6ApFge9jILbaVJ38WE3JMK+lFLggPJ/H1aCIS3iY2CyGYiGv+5SRPCRn0yE4Z46t YpZQ== X-Gm-Message-State: AO0yUKVb7k9tplqIMz3pbwmEbLysWdnRLp0cQrcwFJLWLK1oimu6QBND 5FC0UjABu/178KeSpuWaCbhC8JQEgq8= X-Google-Smtp-Source: AK7set/DJpC8kPIwT80tyGVKgkKPC9zMByiWPoF6DQvnmreG75RCYU4lCf9zOjzTfgyGo9b80VPpMA== X-Received: by 2002:a17:902:d4c2:b0:199:1852:d2e with SMTP id o2-20020a170902d4c200b0019918520d2emr585371plg.9.1675616670966; Sun, 05 Feb 2023 09:04:30 -0800 (PST) Received: from [192.168.0.101] (nat-0-0.nsk.sibset.net. [5.44.169.188]) by smtp.googlemail.com with ESMTPSA id jg21-20020a17090326d500b0019907bfd26fsm1295632plb.178.2023.02.05.09.04.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Feb 2023 09:04:30 -0800 (PST) Message-ID: <58ef4a47-8bda-2d85-05d4-e2c7e14d902d@gmail.com> Date: Mon, 6 Feb 2023 00:04:27 +0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [POLL] Proposed syntax for timestamps with time zone info (was: [FEATURE REQUEST] Timezone support in org-mode datestamps and org-agenda) Content-Language: en-US References: <724af979-3825-4818-bc3b-76649752a004@gmail.com> From: Max Nikulin To: emacs-orgmode@gnu.org Cc: ypuntot In-Reply-To: <724af979-3825-4818-bc3b-76649752a004@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=manikulin@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 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, NICE_REPLY_A=-1.149, 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=1675616734; a=rsa-sha256; cv=none; b=kN6lRvTZVl/rjHkRD9AK6fxcepm2SN8jI7Y84DIOFURYotCxAG+xe+eZ5ZXBGgLCeBsmRJ UcDt0WFeC6eg4YplnfEwuhe44ockboNUg1DPPSMBjMggNyZTveys1tCkZjIQQgAOwNXt7o /QoIVZknDxfdPANL+vjO+5S4xredWSJgr2ZS23DPwOKxK0WDNJ0C+KFmJuSRqVDg2rUyXo I31eVzDuYncaQIHdqdtRbaMX5Bw2pxBfKR+ihLOJr3plhlW7TE/yGjcYmRYzMsat2jRVOH lNrRPnFK6CttmwbBO7DMdHoW+2Ts0JIotfLeX1B1aAW3q1J68cO/s7G683dc1g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=F7Rv3Lpr; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1675616734; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=6Q7Src2t0Ac0FzYNkkPi5HYcXKirE4fro3VmaXiixB0=; b=q8cc73wY3EY4FrOROMrpofiW2wRHxcgq9paA2FCakyvJbGFlsGYvINKmRAhugnimpghYTU bvfHJBhwPvGeDaP6KAkVdGRpd4UO5HUWydRpkdR7dGOG4QHCbxYS0F3jQ1FxhbN+/nE3Vt cV870bBRXqbxqdHosvdb9oJPipiuppRXk/ys7+6WbcODpPqWl4bZl/Uw48H78CGCRobK5G 3fuFK+uxZ2tLEhQ79fzByfZz5clP2pYfLhhU5Q/VoTs8qDFqYztFrG54bgHXfLOTfXDG/L zUneI2/Sdn7SgiYh0he6Yh7XEZmZu+S7oMgM1yRwtnCYjoOy67SvOP0h2c3/FQ== Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20210112 header.b=F7Rv3Lpr; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=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" X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -1.05 X-Spam-Score: -1.05 X-Migadu-Queue-Id: CB3C53414F X-TUID: WzqIfIKY7MWF On 05/02/2023 01:59, ypuntot wrote: > Then, given the time zone and the local time, you can know UTC. > If orgmode gets the UTC there is not ambiguity. Mapping from local time to UTC may be ambiguous, so mapping from local time to time zone offset may be ambiguous as well. The extreme case is 1892-07-04 that happened twice in Pacific/Apia due to offset change by 24 hours to another side of International Date Line. Due to the opposite transition there was no 2011-12-30 in this time zone. Usual case is local time change due to daylight saving time. Notice that 2nd and 4th lines in the results table have the same input, but time offset differs by 1 hour in the output while local time is the same: #+header: :var tz="Europe/Berlin" #+header: :var t0='(:year 2023 :month 10 :day 29 :hour 2 :minute 30 :second 0) #+header: :var hours='(1 2 3 2) #+begin_src elisp (mapcar (lambda (h) (let ((dt (apply #'make-decoded-time :zone tz :dst -1 t0))) (setf (decoded-time-hour dt) h) (list dt (format-time-string "%F %a %T @%z" (encode-time dt) tz)))) hours) #+end_src #+RESULTS: | (0 30 1 29 10 2023 nil -1 Europe/Berlin) | 2023-10-29 Sun 01:30:00 @+0200 | | (0 30 2 29 10 2023 nil -1 Europe/Berlin) | 2023-10-29 Sun 02:30:00 @+0200 | | (0 30 3 29 10 2023 nil -1 Europe/Berlin) | 2023-10-29 Sun 03:30:00 @+0100 | | (0 30 2 29 10 2023 nil -1 Europe/Berlin) | 2023-10-29 Sun 02:30:00 @+0100 | P.S. https://zachholman.com/talk/utc-is-enough-for-everyone-right https://www.youtube.com/watch?v=aEvB98CstOk UTC is Enough for Everyone, Right? > Zach, whatever you do: just don't ever build a calendar