5

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

7月24日星期三

据我所知,里面什么都没有SimpleDateFormat

4

4 回答 4

2

尝试这个

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);
于 2013-07-05T09:57:17.163 回答
1

任何不属于 DateFormat 解析器的文字都可以放在'. 像'th'、'T'、'nd'、'st'

于 2013-07-05T10:03:40.537 回答
0

我想到的最好的主意是尝试四种不同的模式:

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

虽然如果其余格式是固定的,您可能可以相当容易地滚动自己的解析器。

于 2013-07-05T10:00:50.550 回答
0

您正在尝试解析不是日期而是一天的内容。Evgeniy Dorofeev提出了一个很好的方法来解决这个问题。但如果你真的对解析一天感兴趣,你应该创建自己的 Day 类并支持 DayFormat 类。

于 2013-07-05T10:05:15.930 回答