Tom*_*Tom 2 datetime parsing java-8 java-time
我想比较几周的字符串表示,例如"01/17"周在"02/17"之前和"52/16"之后.
以下代码抛出一个异常,我猜是因为我的字符串没有暗示每周的确切日期.但是,我不在乎 - 它可能都是星期一或星期四或其他什么:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ww/YY", Locale.GERMANY);
LocalDate date1 = formatter.parse(str1, LocalDate::from);
Run Code Online (Sandbox Code Playgroud)
我需要修改解析器吗?或者解析其他格式?Unfortunatley几周没有像YearMonth这样的对象......
星期一说,一种解决方案是始终默认为同一天.您可以为此构建自定义格式化程序:
DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.appendPattern("ww/YY")
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
.toFormatter(Locale.GERMANY);
Run Code Online (Sandbox Code Playgroud)
您现在可以构建LocalDate代表给定周的星期一的s:
LocalDate d1 = LocalDate.parse("01/17", fmt);
LocalDate d2 = LocalDate.parse("52/16", fmt);
System.out.println(d1.isAfter(d2));
Run Code Online (Sandbox Code Playgroud)
打印true因为01/17是在52/16之后.
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |