我编写了一种方法,该方法返回字符串格式日期的毫秒值,由于某种原因,它给我未来39000年的日期。有什么想法吗?
private long getTimeInMs(String currentStartTimeString) {
//String newDateString = currentStartTimeString.substring(6,10)+"-"+currentStartTimeString.substring(3, 5)+"-"+currentStartTimeString.substring(0, 2)+ "T" + currentStartTimeString.substring(11);
String newDateString = currentStartTimeString.substring(0,19);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long timeInMs;
try {
timeInMs = df.parse(newDateString).getTime();
} catch (ParseException e) {
log.error("Failed to parse current Start Time",e);
return 0;
}
return timeInMs;
}
如果我输入日期字符串“ 2009-07-07 10:51:01.15”,它将返回1246960261000,实际上是Wed Aug 06 41484 11:16:40 GMT + 0100(GMT夏令时)
好的,我认为问题在于它使ms超出了Java epoc,并且我正在针对unix时代对其进行评估...
最佳答案
我猜想您将getTime()的返回值解释为好像是Unix time_t值。不是-它距Java时代已经过去了毫秒,而距Unix时代已经过去了几秒钟。