如何使用某些 DateFormat 解析这样的字符串?
7月24日星期三
据我所知,里面什么都没有SimpleDateFormat
。
如何使用某些 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);
任何不属于 DateFormat 解析器的文字都可以放在'
. 像'th'、'T'、'nd'、'st'
我想到的最好的主意是尝试四种不同的模式:
EEEE, d'st' MMMM
EEEE, d'nd' MMMM
...
虽然如果其余格式是固定的,您可能可以相当容易地滚动自己的解析器。
您正在尝试解析不是日期而是一天的内容。Evgeniy Dorofeev提出了一个很好的方法来解决这个问题。但如果你真的对解析一天感兴趣,你应该创建自己的 Day 类并支持 DayFormat 类。