1

我已经编写代码来获取时间和时间。当我跑步时,我无法长时间获得正确的日期时间。你能帮我解决这个问题吗?

TimeConverterUtil.java

    import java.text.SimpleDateFormat;
    import java.util.Date;


    public class TimeConverterUtil
    {
        public static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        public static SimpleDateFormat usrFormatter = new SimpleDateFormat("dd MMM yy, HH:mm:ss:ms");

        public static String getDateTime(Long stamp)
        {
              Date date = new Date(stamp);
              return formatter.format(date);
        }
        public static Long getTimestamp(String date)
        {
            Date lFromDate1;
            try {
                lFromDate1 = usrFormatter.parse(date);
                return lFromDate1.getTime(); 
            }
            catch (Exception e)
            {
                e.printStackTrace();
                return null;
            }
        }
    }

测试程序:

TCTester.java

//$Id$

public class TCTester {

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Long timeInLong = TimeConverterUtil.getTimestamp("28 Mar 13, 02:14:02:000");
        System.out.println(TimeConverterUtil.getDateTime(timeInLong));

        System.out.println("\n\n\n"+TimeConverterUtil.getTimestamp("28 Mar 13, 02:14:02:000"));
    }

}
4

1 回答 1

3

问题在于输入格式字符串的毫秒部分。你有一个格式:

"dd MMM yy, HH:mm:ss:ms"

ms被解释为“分钟然后秒”,而不是“毫秒”。你要:

"dd MMM yy, HH:mm:ss:SSS"

请注意,您的输出格式字符串中没有包含毫秒数,因此无论如何都会丢失部分信息。

另请注意,在秒和毫秒之间使用“:”很奇怪。使用“.”会更正常,所以输入可能是"28 Mar 13, 02:14:02.000".

于 2013-03-30T09:22:02.083 回答