Hive 中的时间戳解析
Timestamp parsing in Hive
我正在尝试读取时间戳并根据我的要求在 Hive 中以不同的格式重建它。但是,我似乎无法获得正确的月份和日期。我怀疑时间戳格式不正确,但不确定哪里出错了。
查询
select from_unixtime(unix_timestamp("Sun Mar 28 19:51:10 GMT+05:30 2021", "EEE MMM dd HH:mm:ss z YYYY"), "HH:mm:ss dd-MM-YYYY-z")
输出
14:21:10 27-12-2021-UTC
阅读在 unix_timestamp 和 from_unixtime 的幕后使用的 SimpleDateFormat class 文档。
y
- 是一年---这就是你需要的
Y
- 是星期年 --- 这是你在模式中使用的
另见 https://errorprone.info/bugpattern/MisusedWeekYear
还有一些解释什么是星期年:https://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html#week_year
周年简称为相关周数所属的年份。
固定:
select from_unixtime(unix_timestamp("Sun Mar 28 19:51:10 GMT+05:30 2021", "EEE MMM dd HH:mm:ss z yyyy"), "HH:mm:ss dd-MM-yyyy-z")
结果:
14:21:10 28-03-2021-UTC
我正在尝试读取时间戳并根据我的要求在 Hive 中以不同的格式重建它。但是,我似乎无法获得正确的月份和日期。我怀疑时间戳格式不正确,但不确定哪里出错了。
查询
select from_unixtime(unix_timestamp("Sun Mar 28 19:51:10 GMT+05:30 2021", "EEE MMM dd HH:mm:ss z YYYY"), "HH:mm:ss dd-MM-YYYY-z")
输出
14:21:10 27-12-2021-UTC
阅读在 unix_timestamp 和 from_unixtime 的幕后使用的 SimpleDateFormat class 文档。
y
- 是一年---这就是你需要的
Y
- 是星期年 --- 这是你在模式中使用的
另见 https://errorprone.info/bugpattern/MisusedWeekYear 还有一些解释什么是星期年:https://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html#week_year
周年简称为相关周数所属的年份。
固定:
select from_unixtime(unix_timestamp("Sun Mar 28 19:51:10 GMT+05:30 2021", "EEE MMM dd HH:mm:ss z yyyy"), "HH:mm:ss dd-MM-yyyy-z")
结果:
14:21:10 28-03-2021-UTC