为什么以下代码无法根据输入日期生成正确的输出[重复]

问题描述 投票:-2回答:1
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");
date1 = dateFormat.format(new Date(date));
System.out.println(date+" "+date1);

我的输入是date = 30-Dec-2019,预期的输出是2019-12-30

我得到的输出是2020-12-30

java date datetime simpledateformat date-formatting
1个回答
0
投票

请勿使用过时的日期/时间API。使用现代的日期/时间API进行操作,如下所示:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) throws Exception {
        DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
        DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String strDate = "30-Dec-2019";
        LocalDate date = LocalDate.parse(strDate, inputFormat);
        System.out.println(outputFormat.format(date));
    }
}

输出:

2019-12-30

选中this,以了解过时的日期/时间API的缺点以及现代日期/时间API的优点。

© www.soinside.com 2019 - 2024. All rights reserved.