在工作中,和第三方联调,对方的日期为了节省数据库的存储空间,用varchar类型存储的长整型数字。在转换展示发现竟然是2017年。
后沟通,原来对方存的是Unix时间戳(Unix timestamp),在转换时需先乘以1000转成毫秒。实例如下:
package com.bijian.test;
public class DateTest {
public static void main(String[] args) {
long p = 1514447530l;
String date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date(p));
System.out.println(date); //1970-01-18 20:40:47
String date2 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date(p * 1000));
System.out.println(date2); //2017-12-28 15:52:10
System.out.println(System.currentTimeMillis()); //1515936461590
}
}