问题描述 投票:0回答:3

...问题在哪里?我不需要一年的月份,但是我在确定Dayofweek方面有问题,因为DateTime始终有一月,而不是其他月份。

@lus给出的解决方案是正确的。我提供了

解释。

符号y(jodatime年代)或y(Propict ISO年)之间的选择并不那么重要,因为在我们的现代时代,这两年都有相同的数字。符号m是正确的(用于一个月)。因此,让我们专注于DD与DD。

解决方案“ D”起作用是因为年度/月/月份的组合使解析器可以计算日历日期(琐碎)。如果丢失了个月的日期,那么解析器将不再仅仅用一年和一个月来构建约会日期。

那是什么?这是每年的一天。
java parsing date time jodatime
3个回答
6
投票
org.joda.time.chrono.StrictChronology

)。

如果我了解您需要检查您的模式:

DateTimeFormatter format = DateTimeFormat.forPattern("yyyy MM dd");

Whather

y year d day of month

Tl;dr

java.time.LocalDate.parse ( input.replace ( " " , "-" ) ) 


3
投票

joda-joda-time
和Java的可怕的遗留日期班完全被现代的
Java.Timetime timelime

类定义在JSR 310中,内置于Java 8+。 您可以使用

java.time.format.DateTimeFormatter
定义匹配格式。
DateTimeFormatter f = DateTimeFormatter.ofPattern ( "uuuu MM dd" ) ; LocalDate ld = LocalDate.parse ( input , f ) ;

0
投票
ISO8601

或您可以使用简单的字符串操作。您的输入字符串几乎是标准
ISO8601
格式。要完全遵守,请用

-字符替换空间字符。 String input = "2025 01 23".replace ( " " , "-" ) ;

java.time类默认使用这些标准格式。 因此,直接解析 LocalDate ld = LocalDate.parse ( input ) ; tip:对您的数据进行有关使用ISO 8601格式而不是发明自定义格式的发布者。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.