Re: Predictable Internet Time

"Patrik Fältström " <paf@frobbit.se> Wed, 04 January 2017 07:14 UTC

Return-Path: <paf@frobbit.se>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 536D0129519 for <ietf@ietfa.amsl.com>; Tue, 3 Jan 2017 23:14:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.801
X-Spam-Level:
X-Spam-Status: No, score=-5.801 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-3.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=frobbit.se
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LUmWXKB8zn_Y for <ietf@ietfa.amsl.com>; Tue, 3 Jan 2017 23:14:35 -0800 (PST)
Received: from mail.frobbit.se (mail.frobbit.se [IPv6:2a02:80:3ffe::176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B14E129432 for <ietf@ietf.org>; Tue, 3 Jan 2017 23:14:35 -0800 (PST)
Received: from [77.72.226.187] (unknown [IPv6:2a01:3f0:1:0:34bd:9c2a:528f:eea2]) by mail.frobbit.se (Postfix) with ESMTPSA id 4B2881FEF4; Wed, 4 Jan 2017 08:14:32 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=frobbit.se; s=mail; t=1483514072; bh=BZTzJ7fy1vw/rNpf2qzNaqNl5/bmDCxEOmcJTGp7WU8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lna2LY9vDWzDtZhovp2nKntG/x0d0LGbkHngbT26QFnKOZGl7VAMyDvgXh1CFA9R0 tSqtJkBZTOFO89reXSS7A0xGiXuVOAURcBM9NIOmItgRjPDv8/U6ZZhsrJFsFKWkpF rWBKVZqRHEzJzaGjKOHu64oFNwwyPnGgaFt/Wfy8=
From: Patrik Fältström <paf@frobbit.se>
To: Tony Finch <dot@dotat.at>
Subject: Re: Predictable Internet Time
Date: Wed, 04 Jan 2017 08:14:31 +0100
Message-ID: <F3A52DC6-5CF8-4CB5-93A7-78958CBCA725@frobbit.se>
In-Reply-To: <1483485260.1384841.836469129.669D4C7B@webmail.messagingengine.com>
References: <CAMm+LwgfQJ8aG5wB=d3fRbbeje3J9o7Z4_DCuP8DL88ouDeKzw@mail.gmail.com> <504e2cea0d1668c31486b05fec0a967a4446aefe@webmail.weijax.net> <CAMm+Lwi_jU6gjdtdM6a2n_9_89tUvWBNXxnMtSjTEA++h1D4Ew@mail.gmail.com> <e0a43370-751f-808c-3719-9716f9cd57d1@isi.edu> <alpine.DEB.2.11.1701031348430.7102@grey.csi.cam.ac.uk> <f94415b6-d9f7-0a03-cf5b-ce39c109aa71@isi.edu> <1483475689.1348946.836323865.09305276@webmail.messagingengine.com> <94226b19-4690-ee8e-526e-04cc54e97b8e@isi.edu> <1483482794.1375510.836410009.6D0F7910@webmail.messagingengine.com> <fef56705-3037-eb92-b804-4aa43326a654@isi.edu> <1483485260.1384841.836469129.669D4C7B@webmail.messagingengine.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=_MailMate_0167C850-78B0-43BF-AFB0-8CB6996F977F_="; micalg="pgp-sha1"; protocol="application/pgp-signature"
X-Mailer: MailMate (2.0BETAr6072)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/H-J8JbC1_4W_rqCNQ2NTmCChIIU>
Cc: Phillip Hallam-Baker <phill@hallambaker.com>, IETF Discussion Mailing List <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Jan 2017 07:14:37 -0000

On 4 Jan 2017, at 0:14, Tony Finch wrote:

>>> $ perl -MPOSIX -e 'print strftime "%F %T\n", gmtime 1483228799'
>>> 2016-12-31 23:59:59
>>> $ perl -MPOSIX -e 'print strftime "%F %T\n", gmtime 1483228800'
>>> 2017-01-01 00:00:00
>
> I'm not sure what you mean. If you add (24+24+23)*3600 seconds to 1483228800 you get 23:00:00 today, which is the same length of time after 2017-01-01 00:00:00. Nothing is one second behind now. Except it has taken me more than 600 seconds to write this message.

Well, if you look at the POSIX definition you see that it is clearly wrong the days when leap second is added:

tm_sec + tm_min*60 + tm_hour*3600 + tm_yday*86400 +
    (tm_year-70)*31536000 + ((tm_year-69)/4)*86400 -
    ((tm_year-1)/100)*86400 + ((tm_year+299)/400)*86400


2015-12-31 23:59:58 365th day 61409923198
2015-12-31 23:59:59 365th	 day 61409923199
2016-01-01 00:00:00   1st day 61409836800
2016-01-01 00:00:01   1st day 61409836801
									
2016-12-31 23:59:59 366th day 61441459199
2016-12-31 23:59:60 366th day 61441459200
2017-01-01 00:00:00   1st day 61441459200
2017-01-01 00:00:01   1st day 61441459201

I.e. the real problem we have is a broken POSIX definition.

    Patrik