mirror of
https://github.com/tailscale/tailscale.git
synced 2026-06-23 23:41:41 -04:00
When running `tailscale netcheck`, the reported timestamp used to be in UTC and formatted according to RFC 3339 with a `T` to separate the date from the time: sfllaw@h2co3:~$ tailscale netcheck | head -n3 Report: * Time: 2026-06-01T21:12:32.252620138Z This is machine-readable time leaking out to the user interface. Times in normal commands are formatted for humans to read: sfllaw@h2co3:~$ date Mon 01 Jun 2026 02:39:14 PM PDT sfllaw@h2co3:~$ journalctl -t tailscaled | tail -n1 Jun 01 14:35:21 h2co3 tailscaled[3328921]: wgengine: sending TSMP disco key advertisement to 100.90.144.102 sfllaw@h2co3:~$ timedatectl show Timezone=America/Los_Angeles LocalRTC=no CanNTP=yes NTP=yes NTPSynchronized=yes TimeUSec=Mon 2026-06-01 14:38:32 PDT RTCTimeUSec=Mon 2026-06-01 14:38:32 PDT sfllaw@h2co3:~$ uptime --since 2026-05-15 07:37:45 This PR makes the times printed by the CLI commands consistent: - For `tailscale routecheck`, it now prints local time as `2026-05-15 07:37:45-07:00`. - For `netlogfmt`, it has always printed local time with a space, but now includes the time zone. - All machine-readable outputs continue to be standard RFC 3339 in UTC, i.e. `--format=json`. As part of a general cleanup, this PR also adds standard common time.Format layouts as tstime constants. Fixes #19928 Signed-off-by: Simon Law <sfllaw@tailscale.com>
27 lines
864 B
Go
27 lines
864 B
Go
// Copyright (c) Tailscale Inc & contributors
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package tstime
|
|
|
|
import "time"
|
|
|
|
// These are additional layouts for use in [time.Format] and [time.Parse].
|
|
// For additional details, see [time.Layout].
|
|
const (
|
|
// time.RFC3339 = "2006-01-02T15:04:05Z07:00"
|
|
DateTTimeMilliZ = "2006-01-02T15:04:05.000Z07:00" // RFC3339 with fixed milliseconds
|
|
|
|
// time.DateTime = "2006-01-02 15:04:05"
|
|
DateSpTimeZ = time.DateTime + "Z07:00" // RFC3339 with space instead of 'T'
|
|
DateSpTimeMilliZ = time.DateTime + ".999Z07:00"
|
|
DateSpTimeNanoZ = time.DateTime + ".999999999Z07:00"
|
|
|
|
// ISO8601 basic format: without punctuation
|
|
BasicDateTTime = "20060102T150405"
|
|
BasicDateTTimeZ = "20060102T150405Z07:00"
|
|
|
|
// ISO8601 numeric format: removed in 2019
|
|
NumericDateTime = "20060102150405"
|
|
NumericDateTimeZ = "20060102150405Z07:00"
|
|
)
|