日期对象未返回正确的时间值

时间:2011-07-13 09:05:34

标签: android

我使用下面的代码以特定格式获取当前时间,然后想要打印时间戳。

    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd hh:mm:ss.ms");
    String formattedDate = dateFormat.format(new Date());
    Date curDate = null;
    try {
        curDate = dateFormat.parse(formattedDate);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Log.i(Config.TAG,"curDate...... "+curDate);

但当我看到Logcat输出“curDate .....”显示“Mon Jul 13 04:11:51 EDT 1970” 但在上述陈述中,会议记录错误。 但在我的Android设备中,时间显示为“04:40 AM”。

我无法弄清楚为什么上述方法会延迟“29”分钟。??

PL。让我知道这是正确的方法。 如果我错过了什么,请告诉我。

2 个答案:

答案 0 :(得分:2)

我怀疑这是格式字符串中的“ms”部分,这让人感到困惑。我认为你的意思是“SS”。另外,鉴于您没有AM / PM说明符,您可能需要24小时格式而不是12小时格式:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm:ss.SS");

(顺便说一下,你真的

答案 1 :(得分:0)

添加到Jon的答案:对问题的解释:

如果您尝试以下操作:

SimpleDateFormat dateFormat = new SimpleDateFormat("ms");
String formattedDate = dateFormat.format(new Date());
Date curDate = dateFormat.parse(formattedDate);
System.out.println(formattedDate);
System.out.println(curDate);

打印类似

的内容
3632
Thu Jan 01 00:13:32 CET 1970

这是因为解析器威胁'3'为分钟,'632'为秒 3分632秒是13分32秒。