2011-05-13 79 views
0

我有以下方法将字符串转换成日期对象为什么java不能正确地转换我的时间?

public Date convertTime(String time) { 

    SimpleDateFormat parser = new SimpleDateFormat("d/M/y HH:mm:ss.S"); 
    try { 
     return parser.parse(time); 
    } 
    catch (Exception ex) { 
     ex.printStackTrace(); 
     return null; 
    } 


} 

我有以下方法将其转换回

public String dateToTimeMillis(Date date) { 

    //StringBuffer formatted = new StringBuffer(); 
    SimpleDateFormat parser = new SimpleDateFormat("HH:mm:ss.S"); 
    try { 
     String formatted = parser.format(date); 
     return formatted; 
    } 
    catch (Exception ex) { 
     ex.printStackTrace(); 
     return null; 
    } 


} 

以下测试代码

TraderLib lib = new TraderLib(); 
    Date d1 = lib.convertTime("01/11/2011 10:41:09.045"); 
    System.out.println(lib.dateToTimeMillis(d1)); 

返回10 :41:09.45

如何保存0?

回答

5

您应该格式设置为:

new SimpleDateFormat("d/M/y HH:mm:ss.SSS"); 

保留3位。从documentation

“数字:对于格式化,模式字母的数量是最小位数,而较短数字是零填充到此量。对于解析,模式字母的数量将被忽略,除非需要分隔两个相邻的领域。“

+0

@deltanovember,任何计划接受这个问题的答案?这个答案是否适合你? – retrodrone 2011-05-19 18:03:39

3

使用SimpleDateFormat parser = new SimpleDateFormat("d/M/y HH:mm:ss.SSS");

相关问题