1

我的代码有什么问题:

long TimeinMillisec = system.currentTimeMillis()/1000; //1376324360;

SimpleDateFormat simpledf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss", Locale.getDefault());
String time_str = simpledf.format(TimeinMillisec);

time_str 给出了错误的值:

1970-01-16_23:18:44  

预期的:

2013-08-12_18:19:20
4

3 回答 3

4

这个毫秒数(1376324360)只有大约 15.9 天,所以日期计算看起来是正确的。

您是否不小心使用了以秒为单位的值?乘以 1000 得到大约 43.6 年,加上 1970(Java 中的 0 毫秒的底数)得到 2013。

于 2013-08-12T16:38:29.533 回答
1

首先,您的长期价值不正确

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss",
                                                     Locale.getDefault());
Date date= sdf.parse("2013-08-12_18:19:20");
System.out.println(date.getTime()); // out put is 1376311760000

等效毫秒long值应该是1376311760000.

使用以下,它会正常工作

    long timeInMilliSec = 1376311760000L; // time in mili-seconds  
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
    Date date=new Date(timeInMilliSec);
    String time_str = sdf.format(date);
    System.out.println(time_str);
于 2013-08-12T16:57:52.140 回答
0

看起来你已经掉了几个0。试试:1376349560000

毫秒转换工具。

于 2013-08-12T16:39:39.967 回答