时间转换问题

时间:2013-03-30 09:16:02

标签: java time data-conversion

我已编写代码以便从中获取时间并从中获得很长时间。在我跑步的时候,我无法从长时间内获得正确的约会时间。你能帮我解决这个问题。

  

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"));
    }

}

1 个答案:

答案 0 :(得分:3)

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

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

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

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

请注意,您的输出格式字符串中不包含毫秒数,因此部分信息将会丢失。

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