2012-08-16 53 views
2

我有這樣的SQL查詢和Java代碼:JodaTime DateTimeFormatter

select to_char(start_date, 'DD/MM/YYYY') AS start_date FROM table 

    LogServiceFactory.getInstance().logError("-------From the Db " + rs.getString("start_date")); 

    LogServiceFactory.getInstance().logError("-------Formatter " + DateTime.parse(rs.getString("start_date"), formatter)); 

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/YYYY"); 

    object.setStart_date(DateTime.parse(rs.getString("start_date"), formatter)); 

這裏是什麼在我的日誌文件:

2012-08-16 17時48分26秒 - -------從DB 08/08/2012

2012-08-16 17點48分26秒 - -------格式化2012-08-08T00:00:00.000-04:00

爲什麼格式化程序將08/08/2012轉換爲2012-08-08T00:00:00.000-04:00

我的假設是,日期會回來爲08/08/2012。

我不是用正確的格式?

+0

只是一種風格的事情,但我會說出二傳手'object.setStartDate(..)''不setStart_date(..)'。 – 2012-08-16 22:21:37

+0

好的,我會改變它。 – Robert 2012-08-16 22:22:54

回答

7

我認爲DateTime.parse返回一個新DateTime對象。因此,您可以調用標準的toString()方法,該方法返回格式化的日期模式ISO 8601

您可以使用.toString("dd/MM/yyyy")您的日誌信息。

+0

因此,請將toString(「dd/MM/yyy」)指向我的格式化程序? – Robert 2012-08-16 22:25:39

+0

工作。謝謝。 – Robert 2012-08-16 22:27:55

+1

如果你經常使用這個模式,你可以使用.toString(formatter)。 – BigAl 2012-08-17 04:28:55