2016-10-11 59 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"; 
相关问题