From 061ccffb9e796200fc63a1e0a22265707f70c931 Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Mon, 29 Nov 2021 11:34:24 +0100 Subject: [PATCH] HBASE-26512 Make timestamp format configurable in HBase shell scan output Signed-off-by: Josh Elser --- .../main/java/org/apache/hadoop/hbase/HConstants.java | 5 +++++ hbase-shell/src/main/ruby/hbase/table.rb | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java index e8f8e764caa..db9ccee2eff 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java @@ -1685,6 +1685,11 @@ public final class HConstants { "hbase.regionserver.slowlog.systable.enabled"; public static final boolean DEFAULT_SLOW_LOG_SYS_TABLE_ENABLED_KEY = false; + public static final String SHELL_TIMESTAMP_FORMAT_EPOCH_KEY = + "hbase.shell.timestamp.format.epoch"; + + public static final boolean DEFAULT_SHELL_TIMESTAMP_FORMAT_EPOCH = false; + /** * Number of rows in a batch operation above which a warning will be logged. */ diff --git a/hbase-shell/src/main/ruby/hbase/table.rb b/hbase-shell/src/main/ruby/hbase/table.rb index 73516767fa4..3fc6c853823 100644 --- a/hbase-shell/src/main/ruby/hbase/table.rb +++ b/hbase-shell/src/main/ruby/hbase/table.rb @@ -119,6 +119,9 @@ EOF @name = @table.getName.getNameAsString @shell = shell @converters = {} + @timestamp_format_epoch = table.getConfiguration.getBoolean( + HConstants::SHELL_TIMESTAMP_FORMAT_EPOCH_KEY, + HConstants::DEFAULT_SHELL_TIMESTAMP_FORMAT_EPOCH) end def close @@ -751,8 +754,12 @@ EOF end def toLocalDateTime(millis) - instant = java.time.Instant.ofEpochMilli(millis) - return java.time.LocalDateTime.ofInstant(instant, java.time.ZoneId.systemDefault()).toString + if @timestamp_format_epoch + return millis + else + instant = java.time.Instant.ofEpochMilli(millis) + return java.time.LocalDateTime.ofInstant(instant, java.time.ZoneId.systemDefault()).toString + end end # Make a String of the passed kv