将java.time.LocalDate转换为java.util.Date

时间:2015-06-04 18:03:43

标签: java simpledateformat java.util.date

我有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;
}

2 个答案:

答案 0 :(得分:3)

如果您要将LocalDate转换为Date,请使用

LocalDate localDate = ...;
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date res = Date.from(instant);
     

来源:http://blog.progs.be/542/date-to-java-time

然后,您可以使用SimpleDateFormatDate格式化为您喜欢的任何格式。

答案 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;
    }