2016-10-11 81 views
-3

是否有方法使用Joda將格式爲「YYYY-MM-dd」的日期轉換爲「YYYY-MM-dd HH:mm:ss」?使用Joda將日期轉換爲日期時間

如: 「2016年1月21日」 到 「2016年1月21日00:00:00」 從喬達API

+2

在提問之前,您至少需要搜索本網站和Google,也可以自行解決問題。請閱讀[問]。 –

回答

3

使用DateTimeFormat類。它可以幫助您將日期格式化爲您選擇的格式。你可以簡單地提供你想要的格式,就像在這種情況下你想要「YYYY-MM-dd HH:mm:ss」。下面的代碼適用於JodaTime 2.0及更高版本。

DateTime date = DateTime.parse("2016-01-21", DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss")); 

有在玩兩樣東西在這裏,我們首先需要將現有的字符串解析成一個DateTime對象,它是通過parse方法來完成,這也讓一個額外的參數,將輸出轉換成不同格式。下面給出了更長,但更容易理解的實現。

DateTime date = DateTime.parse("2016-01-21"); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss"); 
date = formatter.parseDateTime(string); 
1

你的問題不明確:

你只想格式化「東西表示日期」與的「00:00:00」時間的字符串?

或者,您試圖轉換「東西表示日期」變成「表示日期+時間的東西,以00:00:00的時間」?

或者您是否試圖通過忽略原始時間並將時間設置爲00:00:00java.util.Date轉換爲Joda org.joda.time.DateTime

或者你是否試圖將格式爲「YYYY-MM-dd」的日期字符串轉換爲另一個帶日期+時間的字符串,時間爲00:00:00?

還是別的什麼?


在約達,以表示一個日期的適當方法是通過LOCALDATE,並代表一個「日期+時間」信息(但不是時間的時刻)是由LocalDateTime的正確方法。 DateTime代表瞬間的時間。有了這些基本的瞭解:

答案Q1:

String result = DateTimeFormat.forPattern("YYYY-MM-dd", myLocalDate); 

答案Q2:

LocalDateTime result = myLocalDate.toLocalDateTime(LocalTime.MIDNIGHT); 

答案Q3:

DateTime result = new DateTime(javaUtilDate).withTimeAtStartOfDay(); 

答案Q4:

String result = dateString + " 00:00:00";