This question already has an answer here:
SimpleDateFormat(“dd-MMM-YYYY”) printing year one year ahead [duplicate]

(1个答案)


3年前关闭。




我有一个关于Class SimpleDateFormat的问题。
我想转换日期字符串的格式。
日期是2011年11月21日,我希望将其转换为111121。

这是我的代码:

public class Main {

private static final SimpleDateFormat oldSimpleDateFormat = new SimpleDateFormat("dd.MM.YYYY");
private static final SimpleDateFormat newSimpleDateFormat = new SimpleDateFormat("YYMMdd");
private static String oldDate = "21.11.2011";
private static Date myDate = oldSimpleDateFormat.parse(oldDate, new ParsePosition(0));
private static String newDate = newSimpleDateFormat.format(myDate);

public static void main(String[] args){
    System.out.println(myDate);
    System.out.println(newDate);
}
}


控制台中的结果为CET 2011星期一1月3日00:00:00和110103。
因此,格式化部分可以正常工作,但解析部分与预期的不同。

最佳答案

当您应该使用YYYY(小写)时,您正在使用yyyy(大写)。

Y表示“周年”。 y表示“年份”。

关于java - Java SimpleDateFormat解析奇数结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39156326/

10-12 22:19