【发布时间】:2020-05-05 17:23:10
【问题描述】:
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
【问题讨论】:
-
不要再使用旧的 simpledateformat 和 java.util.Date Api。使用新的 java.times.* API。并且是 yyyy 而不是 YYYY。
-
如果您需要有关使用过时 API 的代码方面的帮助,请至少发布可编译的代码。
-
已弃用的
Date(String)构造函数不接受该格式的输入。 -
我建议(1)不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。 (2) 即使你坚持使用Date,也要远离那些被弃用的构造函数。它们已被弃用超过 23 年,因为它们跨时区工作不可靠。 -
使用小的 yyyy 我解决了这个问题
标签: java date datetime simpledateformat date-formatting