如何在java中完成解析(SimpleDateFormat)

时间:2017-11-10 09:00:10

标签: java parsing simpledateformat

首先,这不是一个如何解析日期的问题,但解析背后的实际算法是什么。想象一下当您的代码需要某种输入格式但输入略有不同时的情况。考虑示例代码:

案例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将是:

  • yy = 20(2020年)
  • MM = 12 + 5(转换为12个月+ 5的值 字符串的下一部分)
  • rest = 5 + 11(511个月)

所以我们得到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并将其格式化为给定日期模式的算法是什么?

0 个答案:

没有答案