问题:在公司做日志格式化的时候,发现日志里的unix_time字段(长整型时间),
在转化成@timestamp(ISO-8601标准时间)时候老是出现转化成1970年的问题,
原因:
从名字就知道,
这是Unix格式的长整型时间戳,
存的方式是1970年距今的秒,应该乘以1000转化成距今的毫秒,
再进行转换。
代码解决:
//格式化时间
Long timestamp = Long.valueOf((String)format.get("unix_time"))*1000L;
Date time = new Date(Long.valueOf(timestamp));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
String unix_time=sdf.format(time);