2016-01-08 47 views
0

我試圖讓這個模式「DD-MM-YYYY」與DateTime類型獲取與nscala時間的特定圖案的日期時間

@{DateTimeFormat.forPattern("dd-MM-YYYY").parseDateTime(user.birthday.toString)} 

的變量,但我收到此錯誤

java.lang.IllegalArgumentException異常:無效的格式: 「2015-12-10T00:00:00.000Z」 的格式有誤 「:00:15-12-10T00 00.000Z」

有沒有一種辦法用nscala-time做到這一點?

如果我使用UTC,會有所不同嗎?

UPDATE

對於我鑄造日期的時刻,這樣做

@{Dates.format(user.birthday.toDate, "dd-MM-YYYY")} 

但也許是一個更好的辦法,而不鑄造

謝謝

+0

我覺得異常明確指出,要傳遞 「2015-12-10T00:00:00.000Z」,其中格式爲 「DD-MM-YYYY」 的日期預計發生這種情況是因爲你使用了'toString'。 'user.birthday'的類型是什麼?如果要將日期更改爲格式化字符串,請嘗試使用格式爲參數的'toString'重載'DateTime'的方法。 'DateTimeFormat'似乎也有'print'方法,並且需要日期。 –

+0

謝謝@Łukaszuser.birthday是DateTime類型(來自nscala-time庫)。 – agusgambina

+0

然後以下任何方法應該工作。你可以檢查joda time api而不是nscala它應該是類似的。讓你的ide告訴你你有什麼方法,並使用適合你需要的方法。 –

回答

0

所以,如果我正確理解你的問題,你正試圖達到以下目的:

  1. 使用日期格式從字符串解析日期
  2. 以其他格式打印/顯示日期。

嘗試以下:

@{Dates.format(DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parseDateTime(user.birthday.toString), "dd-MM-YYYY")}