以特定格式解析日期字符串

时间:2013-07-08 19:37:01

标签: java simpledateformat

我有一个TimeStamp'2013-06-24 10:46:11.0'我需要切断.0部分,所以我做的是使用SimpleDateFormat将其解析为String然后再将其解析为date,第一次转换很好,但第二次转换(字符串到目前为止)抛出一个java日期时间。

public void convert(Object object) {
    Date date;
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    date = object().getDate();
    String formated = format.format(date);
    try {
       date = format.parse(formated);
    } catch (ParseException ex) {
       Logger.getLogger(DlgConsultaFactura.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我期待的是这样的日期 2013-06-24 10:46:11 ,但我得到的是这个日期 Mon Jun 24 10:46:11 CDT 2013 < /强>

任何帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:2)

Mon Jun 24 10:46:11 CDT 20132013-06-24 10:46:11实际上是相同的值。 Mon Jun 24 10:46:11 CDT 2013符合您的默认语言区域。

你对日期的内部表现形式和显示格式感到困惑。

要在2013-06-24 10:46:11打印,您可以再次使用相同的SimpleDateFormat对象。

您可以使用DateFormat#format(Date)打印日期或以所需格式返回字符串表示,即"yyyy-MM-dd HH:mm:ss"。像这样:

String myDt = format.format(date);
// 2013-06-24 10:46:11

答案 1 :(得分:0)

如果您只想要日期的字符串表示,那么这不是最好的方法,而是快速简单的方法......

    formated = formated.substring(0, formated.length()-2);

:)

答案 2 :(得分:0)

DateFormat,即SimpleDateFormat只根据您的需要格式化日期。

Parse返回传入的String(或您的案例中的时间戳)的Date表示形式。 Format返回传入的Date对象的String表示。

在这两种情况下,您只会看到相同的日期,表示方式也不同。