gpt4 book ai didi

java - 解析 MMMM YYYY 格式的日期

转载 作者:行者123 更新时间:2023-12-01 06:50:22 27 4
gpt4 key购买 nike

我必须将日期字符串(例如“2015 年 10 月”)解析为日期。所以问题是:如何解析 MMMM yyyy 格式的日期?如果新的 Date 对象是给定月份的第一个月,那就可以了。

我尝试过:

DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("MMMM yyyy").toFormatter();
TemporalAccessor ta = formatter.parse(node.textValue());
Instant instant = LocalDate.from(ta).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date d = Date.from(instant);

但是由于缺少这一天,它不起作用。

最佳答案

你拥有的是YearMonth ,不是LocalDate因为这一天不见了。

以下作品:

String string = "October 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy", Locale.ENGLISH);

YearMonth yearMonth = YearMonth.parse(string, formatter);
// Alternatively: YearMonth yearMonth = formatter.parse(string, YearMonth::from);

LocalDate date = yearMonth.atDay(1);

System.out.println(yearMonth); // prints "2015-10"
System.out.println(date); // prints "2015-10-01"

如果您希望将其作为 java.util.Date,您需要指定您所指的时区,也许是 UTC 或系统默认值?

// ZoneId zone = ZoneOffset.UTC;
ZoneId zone = ZoneId.systemDefault();
Date javaUtilDate = Date.from(date.atStartOfDay(zone).toInstant());

System.out.println(javaUtilDate); // prints "Thu Oct 01 00:00:00 CEST 2015"
// because i'm in Europe/Stockholm.

关于java - 解析 MMMM YYYY 格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279917/

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