2

我有一个 TimeStamp '2013-06-24 10:46:11.0' 并且我需要切断 .0 部分,所以我所做的是使用 SimpleDateFormat 将其解析为 String 然后再将其解析为日期,第一次转换很好,但第二次(字符串到日期)抛出一个 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

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

4

3 回答 3

2

Mon Jun 24 10:46:11 CDT 2013并且2013-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
于 2013-07-08T19:41:48.237 回答
0

如果您只想要日期的字符串表示形式,这不是最好的方法,而是一种快速简便的方法......

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

:)

于 2013-07-08T19:59:27.950 回答
0

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

Parse 返回传入的字符串的日期表示(或您的情况下的时间戳)。格式返回传入的日期对象的字符串表示。

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

于 2013-07-08T20:01:11.027 回答