我在解析此日期时遇到问题:
Satu, 30 Octo 2010 06:00:00 EDT
我认为会是
EEEE, dd MMMM yyyy HH:mm:ss Z
但它不起作用。我想将其格式化为
Saturday, October 30, 2010
我一直在关注http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html作为我的资源
答案 0 :(得分:0)
老实说,我放弃Satu,
,然后再解析。您不需要它,并且始终可以使用Calendar
来计算星期几/月/年。有关StringUtils的信息,请参阅here。
String dateString = "Satu, 30 Octo 2010 06:00:00 EDT";
Map<String, String> weirdMonthMap = new HashMap<String, String>();
weirdMonthMap.put("Janu", "Jan");
//...
weirdMonthMap.put("Octo", "Oct");
for (String key: weirdMonthMap.keySet()) {
dateString = StringUtils.replace(dateString, key, weirdMonthMap.get(key));
}
String[] pieces = StringUtils.split(dateString, ',');
if (pieces.length != 2)
throw new IllegalArgumentException("Whoa! " + dateString);
dateString = pieces[1];
SimpleDateFormat format = new SimpleDateFormat(" dd MMM yyyy HH:mm:ss z");
System.out.println( format.parse(dateString) );
答案 1 :(得分:0)
Month: If the number of pattern letters is 3 or more, the month is interpreted as text; otherwise, it is interpreted as a number.
MMM并不意味着“前三个字母”。
MMM和MMMMMMMMMMMMMM都相同。
所以你的输入应该是“十月”或“十月”