如何将localDateTime转换为Date格式(“dd / MM / yyy”)?

时间:2017-12-19 11:37:56

标签: java date

我在格式localDateTime

上转换Date dd/MM/yyyy时遇到问题

这是我的功能:

public static Date localDateTimeToDateWithSlash(LocalDateTime localDateTime) {
    if(localDateTime == null)
        return null;
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    try {
        return format.parse(localDateTime.format(slashDateFormater));
    }
    catch (Exception e) {
        return null;
    }
}

它会返回一个日期,但格式为2017-12-01T01:00

我不明白为什么。

2 个答案:

答案 0 :(得分:3)

日期不包含特定格式;有一个默认的(可排序的)ISO格式,如2017-12-19T12:55,由toString()调用。在这种情况下,返回一个格式正确的日期字符串。

public static String localDateTimeToDateWithSlash(LocalDateTime localDateTime) {
    return DateTimeFormatter.ofPattern("dd/MM/yyyy").format(localDateTime);
}

Date和SimpleDateFormat属于" old"一代人,并且仍将在一段时间内大量使用。但是应该尽量减少它们的使用。

答案 1 :(得分:1)

format()执行的日期格式返回具有预期格式的字符串,但在您使用parse()进行解析时,您会丢失格式,因为Date并非旨在保存特定格式,因此,您在输出日期时看到的是toString()对象的Date表示。