首先,这不是一个如何解析日期的问题,但解析背后的实际算法是什么。想象一下当您的代码需要某种输入格式但输入略有不同时的情况。考虑示例代码:
案例1 - 作为输入我们期待yyMM格式,但有人将其输入为yyyyMM:
String pattern = "yyMM";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String inputDate = "201711";
Date dateParsed = simpleDateFormat.parse(inputDate);
System.out.println(dateParsed);
String dateFormat = simpleDateFormat.format(dateParsed);
System.out.println(dateFormat);
给出输出:6207 - 这里的扣除很容易,因为201711将是:
所以我们得到2020-12的基准日期,并增加511个月,结果是2062-07。
案例2 - 作为输入我们期待yyMMdd格式,但有人将其输入为yyyyMMdd:
String pattern = "yyMMdd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String inputDate = "20171110";
Date dateParsed = simpleDateFormat.parse(inputDate);
System.out.println(dateParsed);
String dateFormat = simpleDateFormat.format(dateParsed);
System.out.println(dateFormat);
给出输出:240514。这里我还没有扣除它是如何完成的,但一般的问题是:
解析String并将其格式化为给定日期模式的算法是什么?