我有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
)并避免使用已弃用的方法?
答案 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));