gpt4 book ai didi

java - 无法解析的日期异常java日期模式

转载 作者:行者123 更新时间:2023-12-02 01:23:31 27 4
gpt4 key购买 nike

我在尝试解析这种格式的日期时遇到错误:

2001 年 3 月 26 日2001 年 8 月 15 日

我正在使用下一个代码:

    private void parseDate(String firstDate) {
Date fDate = null;
try {
fDate = new SimpleDateFormat("dd-MMM-yyyy").parse(firstDate);
} catch (ParseException e) {
e.printStackTrace();
}
}

但我收到错误消息:无法解析的日期:“2001 年 8 月 15 日”。我不太确定必须使用什么日期格式。

谢谢

最佳答案

tl;博士

LocalDate
.parse(
"15-August-2001" ,
DateTimeFormatter.ofPattern( "dd-MMMM-uuuu" , Locale.US )
)
.toString()

提示:最好仅使用标准 ISO 8601 以文本方式交换日期时间数据格式。

java.time

Answer by Deadpool虽然技术上正确,但已经过时了。现代方法使用 java.time 类,通过采用 JSR 310 来取代旧的日期时间类。

本地日期

LocalDate类表示仅日期值,没有日期时间,也没有 time zoneoffset-from-UTC .

DateTimeFormatter

使用 DateTimeFormatter.ofPattern 定义自定义格式模式。格式化代码与旧版 SimpleDateFormat 类并不完全相同,因此请务必仔细研究 Javadoc。

指定Locale确定翻译月份名称时使用的人类语言。

String input = "15-August-2001" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MMMM-uuuu" , Locale.US ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

System.out.println( "ld.toString(): " + ld ) ;

查看此code run live at IdeOne.com .

ld.toString(): 2001-08-15

Table of date-time types in Java, both modern and legacy.

关于java - 无法解析的日期异常java日期模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295244/

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