【问题标题】:how do i format date that i get from user as input and then find that date in a calendar to find out which day_of_month is it in that calendar?我如何格式化从用户那里获得的日期作为输入,然后在日历中查找该日期以找出该日历中的哪个 day_of_month?
【发布时间】:2013-08-19 04:43:55
【问题描述】:

我得到一个日期,包括(-/ 或空格),格式为 dd-mm-yyyydd.MMM.yy,例如

dd.MM.yyyy
dd-MM-yy
dd MM yyyy

即使用户输入年份的最后两位数,如何将其转换为我的格式 dd MM yyyy 我必须将其转换为 4 位数字?

【问题讨论】:

标签: java date format


【解决方案1】:

所以你想要:

将所有 / 替换为空格 全部替换 - 用空格 最后一个空格后替换为 4 位数字假设本世纪 13 -> 2013

然后使用 SimpleDateFormat.parse

【讨论】:

    【解决方案2】:

    您可以查看Apache Commons LangDateUtils,它允许您使用一系列不同的日期模式解析日期String

    simple 使用SimpleDateFormat 来完成实际工作,但是当您想尝试使用多种格式而不是自己循环时,它会变得更容易。

    一旦您将其恢复为Date 值,您就可以使用SimpleDateFormat 来格式化Date,无论您想要什么

    【讨论】:

      【解决方案3】:

      试试这样的。

          Scanner sc=new Scanner(System.in);
          System.out.println("Enter your date: ");
          String[] format={"dd.MM.yyyy", "dd-MM-yy","dd MM yyyy"};
              for (String i : format)
              {
                  try
                  {
                      Date date=new SimpleDateFormat(i).parse(sc.nextLine());
                      System.out.println(new SimpleDateFormat("dd MM yyyy").format(date) );
                  }
                  catch (ParseException e) {
      
                  }
              }
      

      现场演示here.

      您可以将SimpleDateFormat 添加到format array。然后这将转换为"dd MM yyyy" 格式。

      【讨论】:

      • 我需要更多帮助我如何将此日期与日历进行比较,以便我能够获得 day_of_week 以及如何计算日历中的闰年?
      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多