我的代码出了什么问题:
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
答案 0 :(得分:4)
这个毫秒数(1376324360
)只有大约15.9天,因此日期计算看起来是正确的。
您是否在几秒钟内意外使用了某个值?乘以1000得出大约43。6年,当加到1970年(Java的0毫秒基数)给出了2013年。
答案 1 :(得分: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
等效的mili-seconds 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);
答案 2 :(得分:0)
看起来你已经掉了几个0。尝试:1376349560000