我已编写代码以便从中获取时间并从中获得很长时间。在我跑步的时候,我无法从长时间内获得正确的约会时间。你能帮我解决这个问题。
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"));
}
}
答案 0 :(得分:3)
问题在于输入格式字符串的毫秒部分。你有一个格式:
"dd MMM yy, HH:mm:ss:ms"
但ms
被解释为“分钟然后秒”,而不是“毫秒”。你想要:
"dd MMM yy, HH:mm:ss:SSS"
请注意,您的输出格式字符串中不包含毫秒数,因此部分信息将会丢失。
另请注意,在秒和毫秒之间使用“:”是很奇怪的。使用“。”更为正常,因此输入可能是"28 Mar 13, 02:14:02.000"
。