本问题已经有最佳答案,请猛点这里访问。
是否可以使用Joda将格式为" YYYY-MM-dd"的日期转换为" YYYY-MM-dd HH:mm:ss"?
例如:" 2016-01-21"至" 2016-01-21 00:00:00"
在问问题之前,您必须至少搜索此网站(可能还有google),并自己寻求解决方案。 请阅读如何提问。
使用Joda API中的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);
您的问题不清楚:
您是否只想将"表示日期的内容"格式化为时间为" 00:00:00"的字符串?
还是要尝试将"表示日期的东西"转换为"表示日期+时间的东西,以00:00:00作为时间"?
还是要通过忽略原始时间并将时间设置为00:00:00来将java.util.Date转换为Joda org.joda.time.DateTime?
或者您是否正在尝试将格式为" YYYY-MM-dd"的日期字符串转换为日期和时间为00:00:00的另一个字符串?
或者是其他东西?
在Joda中,表示日期的正确方法是使用LocalDate,而表示"日期+时间"信息(但不是瞬间)的正确方法是通过LocalDateTime。 DateTime代表时刻。具备以下基本知识:
问题一:
String result = DateTimeFormat.forPattern("YYYY-MM-dd", myLocalDate);
问题二:
LocalDateTime result = myLocalDate.toLocalDateTime(LocalTime.MIDNIGHT);
第三季度的答案:
DateTime result = new DateTime(javaUtilDate).withTimeAtStartOfDay();
第四季度的答案:
String result = dateString +" 00:00:00";