如何将01/23/2020 11:37:23 PM更改为ISO日期格式

时间:2020-04-19 12:03:00

标签: hive hiveql iso8601

如何将MM/DD/YYYY HH:MM:SS AM/PM更改为ISO日期格式YYYY-MM-DDThh:mm:ssZ

我尝试了unix_timestamp等几个函数。

1 个答案:

答案 0 :(得分:2)

这是一种方法:

beeline> select date_format(cast(unix_timestamp('04/19/2020 09:30:59 AM','MM/dd/yyyy HH:mm:ss a')*1000 as timestamp),'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'');

+-----------------------+
|          _c0          |
+-----------------------+
| 2020-04-19T09:30:59Z  |
+-----------------------+
1 row selected (0.255 seconds)

但是,如果您自己的时区不是UTC,则可能应该通过cast(... as timestamp)将简单的to_utc_timestamp()替换为类型转换+时区转换:

beeline> select date_format(to_utc_timestamp(unix_timestamp('04/19/2020 09:30:59 AM','MM/dd/yyyy HH:mm:ss a')*1000,'EST'),'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'');

+-----------------------+
|          _c0          |
+-----------------------+
| 2020-04-19T14:30:59Z  |
+-----------------------+
1 row selected (0.236 seconds)

有关详细信息,请参见Hive Language Manual