这个问题在这里已经有答案了:
迄今为止的java解析字符串(2个答案)
java SimpleDataFormat在日期对象中返回错误的值(1个答案)
5天前关门了。
我使用下面的代码来更改日期的日期格式。但结果会随着日期的不同而变化,变成2021年12月27日。当我检查它时,它说它使用公历。任何人都知道怎么解决这个问题。
String date = "23-03-2021";
Date d = new SimpleDateFormat("dd-MM-YYYY").parse(date);
SimpleDateFormat outputFormat = new SimpleDateFormat("MM/dd/YYYY");
String paymentdate = outputFormat.format(d);
System.out.println(paymentdate);
实际值:
12/27/2021
预期:
03/23/2021
2条答案
按热度按时间yi0zb3m41#
问题是你用的是
YYYY
而不是yyyy
. 我尝试了你的代码片段,这应该可以解决你的问题。ruoxqz4g2#
使用
yyyy
而不是YYYY
因为Y
表示一年中的一周或一年中的一周y
仅表示年份。根据java文档中的年周和年周:
一年中的一周与一年中的一周同步。第一周和最后一周(含)之间的所有周都具有相同的周-年值。因此,一周中的第一天和最后一天可能具有不同的日历年值。
修改代码:
输出:
不要使用
java.util.Date
因为它已被弃用,将来将被删除。更好地使用来自java.time
包裹。等效代码使用
java.time
课程:输出: