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}

Reply via email to