我正在尝试转换以下纪元时间
1382364283
将其插入在线转换器时,它会给我正确的结果。
2013/10/21 15:00:28
但是以下代码
Long sTime = someTime/1000;
int test = sTime.intValue(); // Doing this to remove the decimal
Date date = new Date(test);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String formatted = format.format(date);
this.doorTime = formatted;
返回
16/01/1970 17:59:24
我已经尝试了其他几种方法来转换它,有什么我想念的吗?
答案 0 :(得分:3)
纪元时间是自纪元以来的秒数。你将它除以一千,得到数千秒,即千秒。但Date
所采用的参数以毫秒为单位。你的代码应该是:
long someTime = 1382364283;
long sTime = someTime*1000; // multiply by 1000, not divide
Date date = new Date(sTime);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String formatted = format.format(date);
System.out.println(formatted); // 21/10/2013 10:04:43
我没有得到你的结果,但我得到的结果与我尝试的在线转换器相同。
答案 1 :(得分:1)
构造函数日期(长时间)需要毫秒时间!当你将someTime(可能是毫安)除以1000时,你得到的时间是秒,而不是毫秒。