当前位置: 首页 > 知识库问答 >
问题:

Java中基于月份的日期选择器

濮阳旺
2023-03-14

有没有比我做的更好的方法来编码它?因为我需要将date解析为string和than解析为int来比较,而且代码相当长。

@Test(priority=3)
 public void test3DateCheck() throws Exception
 {

  String dateOnWebpage = driver.findElement(By.xpath("//div[@id='homeCalendarSection']/div/div[2]/table/tbody/tr/td/div/ul/li")).getText();

  System.out.println("Today Date on webpage is : " + dateOnWebpage);

  //DateFormat dateFormat1 = new SimpleDateFormat("M/dd/yyyy");
  DateFormat dateFormat1 = new SimpleDateFormat("MM");
  Date date = new Date();
  String javaDate1 = dateFormat1.format(date);
  int javaDateSelector = Integer.parseInt(javaDate1);

  if(javaDateSelector < 10)
  { 
      DateFormat dateFormat2 = new SimpleDateFormat("M/dd/yyyy");  
      String javaDate2 = dateFormat2.format(date);
      System.out.println("Today Date from Java is : " + javaDate2);
      Assert.assertEquals(dateOnWebpage, "Today " + javaDate2);
  }
  else
  {
      DateFormat dateFormat3 = new SimpleDateFormat("MM/dd/yyyy");  
      String javaDate3 = dateFormat3.format(date);
      System.out.println("Today Date from Java is : " + javaDate3);
      Assert.assertEquals(dateOnWebpage, "Today " + javaDate3);
  }

}

共有1个答案

康秋月
2023-03-14

如果您不关心web页面上的日期是否以月和月中某一天的前导零书写,只想测试日期是否正确:

    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("'Today' M/d/uuuu");
    LocalDate today = LocalDate.now(ZoneId.of("Pacific/Norfolk"));
    System.out.println("Today is " + today);
    LocalDate observedDate = LocalDate.parse(dateOnWebpage, dateFormatter);
    Assert.assertEquals(today, observedDate);

我不是测试字符串,而是解析日期并测试它。即使该模式中有一个M和一个D,解析两位数的月份和两位数的月份日也没有问题。

另一方面,如果您还想测试web页面上的日期是否没有任何前导零,那么最好测试字符串,就像您已经做的那样:

    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("M/d/uuuu");
    LocalDate today = LocalDate.now(ZoneId.of("Pacific/Norfolk"));
    String todayString = today.format(dateFormatter);
    System.out.println("Today is " + todayString);
    Assert.assertEquals("Today " + todayString, dateOnWebpage);
 类似资料:
  • 我想有一个日期选择器,用户可以从日期选择器中只选择月份和年份,我还需要限制从以前的日期选择器中选择月份和年份的下一个日期选择器... 有人能帮我解脱吗?

  • 有没有办法创建一个包含所有三个下拉列表(日期月份和年份)的日期选择器,我可以通过JS/前端验证将输入的最低年龄限制为18岁?

  • 我使用的是bootstrap datepicker,我的代码如下所示,是JSFIDLE上的代码演示 上面的代码运行良好,但我试图做的是允许用户只选择月份和年份。 你能告诉我怎么做吗?

  • 我需要此格式MonthDay,示例 但我得到的格式是: 我需要做什么?

  • 我很难确定在SQL中只根据月份和年份来比较日期的最佳方式。 我们根据日期进行计算,并且由于按月计费,因此该月的日期造成了更多的障碍。 比如说 上述示例不会返回任何行,因为@date1大于@date2。所以我想找个方法把这一天从等式中去掉。 同样,下面的情况也同样让我感到悲伤。 我已经完成了日期的内联转换,以导出指定日期的第一天和最后一天。 一定有更简单的方法。有什么建议吗?

  • 本文向大家介绍从基于特定月份的MySQL表中选择数据?,包括了从基于特定月份的MySQL表中选择数据?的使用技巧和注意事项,需要的朋友参考一下 使用MySQL中的方法选择基于月份的日期。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 输出结果 这将产生以下输出- 以下是根据特定月份从表中选择数据的查询- 输出结果 这将产生以下输出-