gpt4 book ai didi

java - 无法使用荷兰日月年字符串初始化 Joda DateTime

转载 作者:行者123 更新时间:2023-11-30 02:55:31 24 4
gpt4 key购买 nike

import org.joda.time.DateTime;

public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormat.forPattern("dd MMM yyyy");
f = f.withLocale(Locale.US);
f.parseDateTime("13 januari 2016");

DateTime date = new DateTime(f);
date.getDayOfYear();
}

月份是荷兰语,而不是英语。

输出:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "13 januari 2016" is malformed at "uari 2016"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:899)
at com.company.Main.main(Main.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

如何正确初始化此 Joda DateTime?非常感谢大家!

最佳答案

检索适合您所需语言的区域设置。使用它来构造具有适当模式的 DateTimeFormat。然后解析您的日期字符串。

例如

Locale dutch = Locale.forLanguageTag("nl-nl");
DateTimeFormatter f = DateTimeFormat.forPattern("dd MMM yyyy").withLocale(dutch);
DateTime date = f.parseDateTime("13 januari 2016");
<小时/>

我不知道你想做什么

DateTime date = new DateTime(f);

DateTime 构造函数需要一个表示瞬间的 Object

The recognised object types are defined in ConverterManager and include ReadableInstant, String, Calendar and Date. The String formats are described by ISODateTimeFormat.dateTimeParser().

DateTimeFormat 都不是这些。

关于java - 无法使用荷兰日月年字符串初始化 Joda DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300031/

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