我想解析的字符串类型是:“36/2017”,其中36是一年中的一周,2017是一年。
我的代码:
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("w/uuuu")
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
.toFormatter();
LocalDate date = LocalDate.parse("36/2017", formatter);
我添加了一个默认日期。
我有这个信息:
java.time.format.DateTimeParseException: Text '36/2017' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {WeekOfWeekBasedYear[WeekFields[MONDAY,4]]=36, Year=2017, DayOfWeek=1},ISO of type java.time.format.Parsed
任何想法?谢谢你!
模式是错误的。您必须设置以下字符串
"w/YYYY"
DateTimeFormatter formatter = new
DateTimeFormatterBuilder()
.appendPattern("w/YYYY")
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
.toFormatter();
LocalDate date = LocalDate.parse("36/2017", formatter);
从文档中:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
如果你用的是周,你应该用大写的Y。
public static void main(String[] args) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("w/YYYY")
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
.toFormatter();
LocalDate date = LocalDate.parse("36/2017", formatter);
}
问题内容: 我的输入是以2015年7月1日格式为“ 01-07-2015”的日期的字符串表示形式。我正在尝试将其解析为一个变量: 基于JavaDoc,我希望它能起作用。但是,我收到了一条非常友好和有用的信息: 由以下原因引起:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayOfMonth = 1,MonthOfYear
我的输入是2015年7月1日日期的字符串表示形式,格式为“01-07-2015”。我试图将其解析为变量: 基于JavaDoc,我希望这能起作用。然而,我收到了一条非常友好和有益的信息: 原因:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayofMonth=1,MonthofYear=7,WeekBasedYear[Wee
我试图用localdate解析以下字符串:“04 Aug 2015”。 在尝试了DateTimeFormatters的一些变体之后,我在SO中寻找答案,并发现answer中给出的一些解析示例对我不起作用。经过进一步的研究,我发现Java14不能解析包含字符串月份的日期,如“jul”、“feb”。但在Java8&10中,它工作得完美无缺。 引发的异常是: 下面是在Java8/10上成功打印并在Jav
我想将转换为,但由于某种原因无法转换。
我有一个格式有时间戳的字符串 “2021-02-04 23:45:00”但是当我尝试用time.parse解析它时,它似乎切断了年份部分。 代码是 其中此时的record[i]是一个字符串 2021-02-04 00:15:00 和阅读。间隔就是时间。时间 Printf中返回的错误是 我在我做过的任何搜索中都找不到。我在这里错过了什么?