Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DateFormat:如何处理;",&引用;“第&引用;rd"&引用;“什么?”;?_Java_Date Format_Simpledateformat_Date Formatting - Fatal编程技术网

Java DateFormat:如何处理;",&引用;“第&引用;rd"&引用;“什么?”;?

Java DateFormat:如何处理;",&引用;“第&引用;rd"&引用;“什么?”;?,java,date-format,simpledateformat,date-formatting,Java,Date Format,Simpledateformat,Date Formatting,如何使用某种DateFormat解析这样的字符串 7月24日,星期三 据我所知,SimpleDateFormat中没有任何内容。试试这个 String str = "Wednesday, 24th July"; str = str.replaceAll("(\\d\\d)..", "$1") + " " + Calendar.getInstance().get(Calendar.YEAR); Date date = new SimpleDateFormat("EEEE, dd MMMM yyyy

如何使用某种DateFormat解析这样的字符串

7月24日,星期三

据我所知,
SimpleDateFormat

中没有任何内容。试试这个

String str = "Wednesday, 24th July";
str = str.replaceAll("(\\d\\d)..", "$1") + " " + Calendar.getInstance().get(Calendar.YEAR);
Date date = new SimpleDateFormat("EEEE, dd MMMM yyyy", Locale.US).parse(str);

我脑海中的最佳想法是尝试四种不同的模式:

EEEE, d'st' MMMM
EEEE, d'nd' MMMM
...

尽管如果格式的其余部分是固定的,您可能可以相当轻松地滚动您自己的解析器。

任何不属于DateFormat解析器的文本都可以放在
之间。像'th','T','nd','st'

你试图解析的东西不是日期,而是一天。Evgeniy Dorofev提出了一个很好的方法来解决这个问题。但是如果你真的对解析一天感兴趣,你应该创建你自己的课堂和受支持的DayFormat类。

请花些时间把你的缩写写出来。写AFAICT而不是“据我所知”只是一种懒惰,让那些试图帮助你的人更难真正帮助你,因为不是每个人都知道这意味着什么。好吧,我会尽量记住的。但它是众所周知的,它可以被认为是一种语言结构而不是缩写,不像JVM。顺便说一句,它是首字母缩略词,FYI;-)我不得不用谷歌搜索它,我的评论获得了5票赞成票,所以这应该是一个合理的迹象,表明我不是唯一一个;)下次请记住这一点。与查找单词的含义相比,完全写出单词所需的时间和精力更少。
java.util
Date-time API及其格式化API
SimpleDateFormat
已经过时且容易出错。建议完全停止使用,并切换到。检查以了解如何使用现代日期时间API解决它。当然,我假设是今年。关键是,没有格式化程序处理“st,nd”…这就是我所做的。所以我有办法用某种日期格式简单地捕捉到“th”等人。我们可以,作为dd'th',但是“nd”和其他人不会解析,似乎没有办法解决这个问题。我想会有一些模式,比如
%X
,或者会解析它的东西。好的,谢谢。