gpt4 book ai didi

java - 检查 html 代码中的日期

转载 作者:行者123 更新时间:2023-12-01 20:16:58 26 4
gpt4 key购买 nike

我有一个带有这样标签的网页:“表格上次更新时间为 2017 年 CEST 7 月 27 日星期四 10:57:10,来自所有者”

我必须检查该日期是否晚于今天 0 点。我得到的 html 代码是:

Document doc = Jsoup.parse(driver.getPageSource());
String htmlcode = doc.body().text();

我考虑过对代码进行子串化以获取日期,但由于此标签值的大小可能会有所不同,因此我无法获取整个标签。关于如何从代码中获取日期以便我进行比较有什么想法吗?

最佳答案

tl;博士

ZonedDateTime.parse(                              // Parse string into a date + time-of-day + time zone.
… , // Your input string.
DateTimeFormatter.ofPattern( "EEE MMM d HH:mm:ss zzz uuuu" , Locale.US ) // Specify `Locale` to determine human language and cultural norms in parsing and translating the text.
)
.toLocalDate() // Extract the date-only portion of the `ZonedDateTime` object.
.isEqual(
LocalDate.now( ZoneId.of( "Africa/Tunis" ) ) // Get current date as seen by people of a certain region (time zone).
)

java.time

Answer by aUserHimself建议使用 jsoup 库是正确的。但示例代码在其他方面是不明智的,犯了以下几个错误:

  • 使用麻烦的旧版日期时间类。这些类现在已被 java.time 取代。类。
  • 假设一天从 00:00:00 开始。不适用于所有时区的所有日期。异常如Daylight Saving Time (DST)表示一天可能从 01:00:00 等时间开始。
  • 忽略 Locale 的问题,它决定了解析月份名称、星期名称等文本时使用的人类语言。 Locale还决定了预期的标点符号和其他文化规范。
  • 忽略 time zone 的关键问题确定当前日期。

示例代码。

String input = … ;
Locale locale = Locale.US ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "EEE MMM d HH:mm:ss zzz uuuu" , locale ) ;
ZonedDateTime zdt = ZonedDateTime.parse( input , f ) ;
LocalDate ld = zdt.toLocalDate() ;

与今天的日期进行比较。必须指定预期/所需的时区。对于任何特定时刻,世界各地的日期因地区而异。例如,印度的新一天比加拿大更早到来。

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

Boolean isSameDate = ld.isEqual( today ) ;
<小时/>

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .

带有JDBC driver符合JDBC 4.2或以后,您可以直接与数据库交换java.time对象。不需要字符串或 java.sql.* 类。

从哪里获取java.time类?

ThreeTen-Extra项目通过附加类扩展了 java.time。该项目是 java.time future 可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter ,和more .

关于java - 检查 html 代码中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com