在工作中,和第三方联调,对方的日期为了节省数据库的存储空间,用varchar类型存储的长整型数字。在转换展示发现竟然是2017年。
后沟通,原来对方存的是Unix时间戳(Unix timestamp),在转换时需先乘以1000转成毫秒。实例如下:
class="java" name="code">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 } }
?
参考资料:http://tool.chinaz.com/Tools/unixtime.aspx