本文介绍了用可变空间解析日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Joda解析日期,并使用不使用前导零的格式,例如:
I am using Joda to parse dates and have a format where leading zeros are not used, e.g.:
Mon Nov 20 14:40:36 2006
Mon Nov 6 14:40:36 2006
请注意dayOfMonth字段用空白填充。
Note that the dayOfMonth field is left-padded with a blank.
目前,我似乎必须使用两种不同的格式,如果失败,则重新分析
Currently I seem to have to use two different formats and reparse if one fails
"EEE MMM dd HH:mm:ss yyyy"
"EEE MMM d HH:mm:ss yyyy"
是否有单一格式(或API开关)处理这两种情况? (SimpleDateFormat的答案是一样的 - 我不用吗?)
Is there a single format (or an API switch) which deals with both cases? (is the answer the same for SimpleDateFormat - which I don't use?)
推荐答案
我刚刚创建了一个快速程序检查这个 -
I have just created a quick program to check this -
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy");
try {
String source1 = "Mon Nov 20 14:40:36 2006";
Date d1 = sdf.parse(source1);
String source2 = "Mon Nov 6 14:40:36 2006";
Date d2 = sdf.parse(source2);
String res1 = sdf.format(d1);
String res2 = sdf.format(d2);
System.out.println(source1 +"="+ res1);
System.out.println(source2 +"="+ res2);
} catch (ParseException e) {
e.printStackTrace();
}
这个输出是 -
Mon Nov 20 14:40:36 2006=Mon Nov 20 14:40:36 2006
Mon Nov 6 14:40:36 2006=Mon Nov 6 14:40:36 2006
所以即使source2有额外的空间,仍然会被
So, even though source2 has the extra space, it is still parsed by
EEE MMM d HH:mm:ss yyyy
希望有助于
这篇关于用可变空间解析日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!