为了账号安全,请及时绑定邮箱和手机立即绑定

未来的日历 DatePicker

未来的日历 DatePicker

紫衣仙女 2023-05-10 17:23:07
我希望能够使 javascript 自动选择从今天开始的 2 天,不知道如何执行它。“ValueFrom”当前正在自动选择 LocalDate。要更改的代码:“ValueTo”public CorporateMessagesPage selectDateAndPlaceOrder() {    String valueFrom = "arguments[0].value = '" + DateTime.now().toString("dd/MM/yyyy") + "'";    String valueTo = (valueFrom +2);    JavascriptExecutor javascriptExecutor = (JavascriptExecutor) webDriver;    System.out.print(String.valueOf(LocalDate.now()));    javascriptExecutor.executeScript(valueFrom, validFromDate);    javascriptExecutor.executeScript(valueTo, validToDate);    return PageFactory.initElements(webDriver, CorporateMessagesPage.class);}我希望“ValueTo”等于“ValueFrom”+ 2 天。块引用
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您可以使用其行业领先的java.time类在 Java 中完成所有这些工作。不需要 JavaScript。


LocalDate                          // Represent a date-only value, without time-of-day and without time zone or offset-from-UTC.

.now()                             // Capture the date as seen in the wall-clock time in the JVM’s current default time zone. Better to specify the desired/expected time zone explicitly.

.plusDays( 2 )                     // Date math, adding days to move forward in time.

.format(                           // Generate text to represent the value of this date.

    DateTimeFormatter              // Specify format.

    .ofLocalizedDate(              // Automatically localize according to the human language and cultural norms of a specific `Locale`. 

        FormatStyle.SHORT          // How long or abbreviated to present this value.

    )                              // Returns a `DateTimeFormatter` object.

    .withLocale( Locale.UK )       // Returns another `DateTimeFormatter` object, per Immutable Objects pattern.

)                                  // Returns a `String`. 

03/08/2019

java.time

LocalDate

该类LocalDate表示没有日期时间和时区或offset-from-UTC 的仅日期值。

时区对于确定日期至关重要。对于任何给定时刻,日期在全球范围内因地区而异。例如,在法国巴黎午夜过后几分钟是新的一天,而在魁北克蒙特利尔仍然是“昨天” 。

如果未指定时区,则 JVM 隐式应用其当前默认时区。该默认值可能会在运行时随时更改(!),因此您的结果可能会有所不同。最好明确指定您想要/预期的时区作为参数。如果关键,请与您的用户确认该区域。

以、或 等格式指定适当的时区名称。切勿使用 2-4 字母缩写,例如或因为它们不是真正的时区、未标准化,甚至不是唯一的(!)。Continent/RegionAmerica/MontrealAfrica/CasablancaPacific/AucklandESTIST

ZoneId z = ZoneId.of( "America/Montreal" ) ;  
LocalDate today = LocalDate.now( z ) ;

如果你想使用 JVM 的当前默认时区,请求它并作为参数传递。如果省略,代码将变得难以阅读,因为我们不确定您是否打算使用默认值,或者您是否像许多程序员一样没有意识到这个问题。

ZoneId z = ZoneId.systemDefault() ;  // Get JVM’s current default time zone.

日期数学

使用上找到的plus…&方法及时向前或向后移动。minus…LocalDate

LocalDate dayAfterNext = LocalDate.now( z ).plusDays( 2 ) ;

或者使用Period类。

Period twoDays = Period.ofDays( 2 ) ;
LocalDate later = LocalDate.now( z ).plus( twoDays ) ;

生成文本

用于DateTimeFormatter生成表示对象值的文本LocalDate。您可以自动本地化或指定自定义格式模式。

查看完整回答
反对 回复 2023-05-10
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以使用 java calendar 来获得您想要的时间


        SimpleDateFormat obj_dateFormat = new SimpleDateFormat("dd/MM/yyyy");

        Calendar calender = Calendar.getInstance();


        //get valueFrom

        String valueFrom = obj_dateFormat.format(new Date(calender.getTimeInMillis()));


         //Add 2 days in current time

        calender.add(Calendar.DAY_OF_MONTH, 2);


        //get valueTo

        String valueTo = obj_dateFormat.format(new Date(calender.getTimeInMillis()));



查看完整回答
反对 回复 2023-05-10
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信