从时间戳到正常日期

时间:2016-04-19 14:59:20

标签: java android date

我有TimeStamp时间作为字符串1374160160,相当于07/18/2013

如果我有办法将此TimeStamp转换为格式为July 18, 2013的日期?

这是我的代码段:

try{
  String timeStamp = "1374160160";
  DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
  Date netDate = (new Date(timeStamp));
  return sdf.format(netDate);
} catch(Exception ex) {
  return "";
}

总是返回01/17/1970为什么?

第二个问题是new Date(String)已被弃用。

总结一下:

如何从时间戳创建正常日期(July 18, 2013)并避免使用已弃用的方法?

1 个答案:

答案 0 :(得分:1)

您的timeStamp实例保留秒,但Java Date构造函数需要毫秒。通过documentation

  

分配一个Date对象并对其进行初始化,以表示自标准基准时间称为“epoch”以来的指定毫秒数,即1970年1月1日00:00:00 GMT

所以你应该使用它:

String timeStamp = "1374160160";
long timeMillis = Long.valueOf(timeStamp) * 1000;
Date netDate = new Date(timeMillis);

而不是:

String timeStamp = "1374160160";
Date netDate = (new Date(timeStamp));