• Alberto Donizetti's avatar
    time: allow +00 as numeric timezone name and GMT offset · 38143bad
    Alberto Donizetti authored
    A timezone with a zero offset from UTC and without a three-letter
    abbreviation will have a numeric name in timestamps: "+00".
    
    There are currently two of them:
    
      $ zdump Atlantic/Azores America/Scoresbysund
      Atlantic/Azores       Wed Aug 22 09:01:05 2018 +00
      America/Scoresbysund  Wed Aug 22 09:01:05 2018 +00
    
    These two timestamp are rejected by Parse, since it doesn't allow for
    zero offsets:
    
      parsing time "Wed Aug 22 09:01:05 2018 +00": extra text: +00
    
    This change modifies Parse to accept a +00 offset in numeric timezone
    names.
    
    As side effect of this change, Parse also now accepts "GMT+00". It was
    explicitely disallowed (with a unit test ensuring it got rejected),
    but the restriction seems incorrect.
    
    DATE(1), for example, allows it:
    
      $ date --debug --date="2009-01-02 03:04:05 GMT+00"
    
      date: parsed date part: (Y-M-D) 2009-01-02
      date: parsed time part: 03:04:05
      date: parsed zone part: UTC+00
      date: input timezone: parsed date/time string (+00)
      date: using specified time as starting value: '03:04:05'
      date: starting date/time: '(Y-M-D) 2009-01-02 03:04:05 TZ=+00'
      date: '(Y-M-D) 2009-01-02 03:04:05 TZ=+00' = 1230865445 epoch-seconds
      date: timezone: system default
      date: final: 1230865445.000000000 (epoch-seconds)
      date: final: (Y-M-D) 2009-01-02 03:04:05 (UTC)
      date: final: (Y-M-D) 2009-01-02 04:04:05 (UTC+01)
      Fri  2 Jan 04:04:05 CET 2009
    
    This fixes 2 of 17 time.Parse() failures listed in Issue #26032.
    
    Updates #26032
    
    Change-Id: I01cd067044371322b7bb1dae452fb3c758ed3cc2
    Reviewed-on: https://go-review.googlesource.com/130696
    Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    38143bad
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...