currentStartTimeString

currentStartTimeString

我编写了一种方法,该方法返回字符串格式日期的毫秒值,由于某种原因,它给我未来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时代已经过去了几秒钟。

10-04 19:07