avro-tojson日期格式

z4iuyo4d  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(325)

我使用sqoop将包含选定列的表导入avro文件格式。使用avro工具tojson,日期以奇怪的格式显示(negative)。我如何解码日期?

{"first_name":{"string":"Mary"},"last_name":  {"string":"Botman"},"birth_date":{"long":-345772800000}}

其中作为mysql查询的5个正确格式

mysql> select first_name, last_name, birth_date from employees where first_name like 'Mary' and last_name ='Botman';
  +------------+-----------+------------+
  | first_name | last_name | birth_date |
  +------------+-----------+------------+
  | Mary       | Botman    | 1959-01-17 |
  +------------+-----------+------------+
  1 row in set (0.07 sec)
xt0899hw

xt0899hw1#

长值-345772800000表示。。。
…指定自称为“历元”的标准基准时间起的毫秒数,即1970年1月1日00:00:00 gmt自1970年1月1日起的毫秒数
在你的例子中,它是一个负值,所以它从“时代”开始倒数。在java代码中,您可以创建 LocalDate 从这个值得到如下结果,这将得到与配置单元查询结果相同的结果。

LocalDate date17Jan1959 = Instant.ofEpochMilli(-345772800000L)
    .atZone(ZoneOffset.UTC)
    .toLocalDate();

相关问题