我有yyyy-MM-dd格式的java.time.LocalDate对象。 我想知道如何使用MM-dd-yyyy格式将其转换为java.util.Date。 getStartDate()方法应该能够返回格式为MM-dd-yyyy的Date类型对象。
DateParser类
package com.accenture.javadojo.orgchart;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Locale;
public class DateParser {
public static LocalDate parseDate(String strDate){
try{
if((strDate != null) && !("").equals(strDate)){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/yyyy").withLocale(Locale.US);
LocalDate date = LocalDate.parse(strDate, formatter);
return date;
}
} catch (DateTimeParseException e) {
e.printStackTrace();
}
return null;
}
}
public Date getStartDate() {
String fmd = format.format(startDate);
LocalDate localDate = DateParser.parseDate(fmd);
return startDate;
}
答案 0 :(得分:3)
如果您要将LocalDate
转换为Date
,请使用
LocalDate localDate = ...; Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant(); Date res = Date.from(instant);
然后,您可以使用SimpleDateFormat
将Date
格式化为您喜欢的任何格式。
答案 1 :(得分:0)
您可以使用SimpleDateFormat在LocalDate和Date对象之间切换。
import java.text.SimpleDateFormat;
public Date getStartDate() {
String fmd = format.format(startDate);
LocalDate localDate = DateParser.parseDate(fmd);
SimpleDateFormat actual = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat wanted = new SimpleDateFormat("MM-dd-yyyy");
String reformatted = wanted.format(actual.parse(localDate.toString()));
Date date = wanted.parse(reformatted);
return date;
}