是否可以解析这些日期

时间:2014-02-13 14:06:55

标签: java date

是否可以在Java中解析这些日期:

Sunday February 09th, 2014 or Sunday February 21st, 2014.

我使用SimpleDateFormat搜索方式。感谢

4 个答案:

答案 0 :(得分:3)

在使用模式nd|rd|th|st解析字符串之前,此代码仅使用带有lookbehind的正则表达式来替换所有出现的EEE MMM dd, yyyy

String value = "Sunday February 09th, 2014";
String formatted = value.replaceAll("(?<=\\d)(nd|rd|th|st)", "");
System.out.println(formatted);

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd, yyyy");     
Date date = format.parse(formatted);    

答案 1 :(得分:2)

您可以使用simpleDateformat,尝试使用mask:

"E, dd MMMMM yyyy"

例如:2014年2月9日星期日

在simpleDateformat中无法添加th,rd等...你必须手动执行此操作:

// http://code.google.com/p/guava-libraries
import static com.google.common.base.Preconditions.*;

String getDayOfMonthSuffix(final int n) {
    checkArgument(n >= 1 && n <= 31, "illegal day of month: " + n);
if (n >= 11 && n <= 13) {
    return "th";
}
switch (n % 10) {
    case 1:  return "st";
    case 2:  return "nd";
    case 3:  return "rd";
    default: return "th";
}

}

答案 2 :(得分:0)

    SimpleDateFormat formatter = new SimpleDateFormat("E, MMM dd yyyy");
String dateInString = "Fri, June 7 2013";       
    try {
       Date date = formatter.parse(dateInString);
       System.out.println(date);
   System.out.println(formatter.format(date));
    } catch (ParseException e) {
    e.printStackTrace();
}

尝试这样的事情。参考:http://www.mkyong.com/java/how-to-convert-string-to-date-java/

答案 3 :(得分:0)

SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, "PST");
pdt.setStartRule(DateFields.APRIL, 1, DateFields.SUNDAY, 2*60*60*1000);
pdt.setEndRule(DateFields.OCTOBER, -1, DateFields.SUNDAY, 2*60*60*1000);
// Format the current time.
SimpleDateFormat formatter
 = new SimpleDateFormat ("yyyy.mm.dd e 'at' hh:mm:ss a zzz");
Date currentTime_1 = new Date();
String dateString = formatter.format(currentTime_1);
// Parse the previous string back into a Date.
ParsePosition pos = new ParsePosition(0);
Date currentTime_2 = formatter.parse(dateString, pos);

请参阅此以获取更多知识; http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html