Repository: arrow Updated Branches: refs/heads/master 39c7274fc -> 57b537a3c
ARROW-637: [Format] Add timezone to Timestamp metadata, comments describing the semantics cc @julianhyde @julienledem for comment. This makes Arrow semantically equivalent to datetime objects in Python, and I believe the SQL standard Author: Wes McKinney <wes.mckin...@twosigma.com> Closes #388 from wesm/ARROW-637 and squashes the following commits: e4661a4 [Wes McKinney] Allow for absolute time zone offsets 3fc10d6 [Wes McKinney] typo a25967a [Wes McKinney] Add timezone to Timestamp metadata, comments describing the semantics Project: http://git-wip-us.apache.org/repos/asf/arrow/repo Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/57b537a3 Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/57b537a3 Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/57b537a3 Branch: refs/heads/master Commit: 57b537a3ce54698c60addb9d193ecfc3b88397aa Parents: 39c7274 Author: Wes McKinney <wes.mckin...@twosigma.com> Authored: Fri Mar 17 17:20:48 2017 -0700 Committer: Julien Le Dem <jul...@dremio.com> Committed: Fri Mar 17 17:20:48 2017 -0700 ---------------------------------------------------------------------- format/Message.fbs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/arrow/blob/57b537a3/format/Message.fbs ---------------------------------------------------------------------- diff --git a/format/Message.fbs b/format/Message.fbs index fb3478d..f2d5eba 100644 --- a/format/Message.fbs +++ b/format/Message.fbs @@ -93,6 +93,28 @@ table Time { /// time from the Unix epoch, 00:00:00.000 on 1 January 1970, UTC. table Timestamp { unit: TimeUnit; + + /// The time zone is a string indicating the name of a time zone, one of: + /// + /// * As used in the Olson time zone database (the "tz database" or + /// "tzdata"), such as "America/New_York" + /// * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30 + /// + /// Whether a timezone string is present indicates different semantics about + /// the data: + /// + /// * If the time zone is null or equal to an empty string, the data is "time + /// zone naive" and shall be displayed *as is* to the user, not localized + /// to the locale of the user. This data can be though of as UTC but + /// without having "UTC" as the time zone, it is not considered to be + /// localized to any time zone + /// + /// * If the time zone is set to a valid value, values can be displayed as + /// "localized" to that time zone, even though the underlying 64-bit + /// integers are identical to the same data stored in UTC. Converting + /// between time zones is a metadata-only operation and does not change the + /// underlying values + timezone: string; } enum IntervalUnit: short { YEAR_MONTH, DAY_TIME}