accept timezone for timestamps #1432
Merged
+53
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
What this PR does / why we need it:
When
TimestampFlag
is used with implicit timezone, defaulttime.Parse
behavior is assumed, which is parsing time in some timezone, and provide a UTC time. I haven't tested it myself, but I've read somewhere this works just with local timezone on windows, but it does this in UTC on linux. Either way,time.Parse
assumes UTC times on linux and mac.The suggested solution is to use
time.ParseInLocation
instead, and provide a*time.Location
value for the default timezone.This PR adds a
Timezone
member intoTimestampFlag
struct. Input parsing runstime.ParseInLocation
when location is present, but keeps old behavior if Timezone is nil, to guarantee backwards compatibility.Which issue(s) this PR fixes:
I haven't opened a separate issue for this PR.
Special notes for your reviewer:
I haven't included v2approve output.
Testing
This PR adds a new test, TestTimestampFlagApply_Timezoned (copied from TestTimestampFlagApply), which constructs a static timezone called PDT (UTC-7h), and expects the example UTC time provided in PDT timezone.
Release Notes