Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用日期编号后的字母解析日期_Java_Parsing_Date - Fatal编程技术网

Java 如何用日期编号后的字母解析日期

Java 如何用日期编号后的字母解析日期,java,parsing,date,Java,Parsing,Date,我知道如何在Java中使用SimpleDataFormat。但是,解析所有日期的最好方法是什么呢?这些日期的数字后面都有字母?例如:“2014年5月25日”、“2014年5月3日”、“2014年5月1日”。你知道字母会有什么不同吗?所以我不想为每个数字结尾创建单独的格式化程序。在Java中使用REE是一种更好的方法吗?您可以使用replaceAll将它们转换为通用格式,然后将其放入单个格式化程序字符串中 theDate = theDate.replaceAll("(?:(st|nd|rd|th)

我知道如何在Java中使用SimpleDataFormat。但是,解析所有日期的最好方法是什么呢?这些日期的数字后面都有字母?例如:“2014年5月25日”、“2014年5月3日”、“2014年5月1日”。你知道字母会有什么不同吗?所以我不想为每个数字结尾创建单独的格式化程序。在Java中使用REE是一种更好的方法吗?

您可以使用
replaceAll
将它们转换为通用格式,然后将其放入单个格式化程序字符串中

theDate = theDate.replaceAll("(?:(st|nd|rd|th))","xx");
if (theDate.contains("guxx"))   // Handle fixing "August" becoming "Auguxx"
    theDate = theDate.replace("guxx","gust");

这将把
1st 2nd 3rd 4th 5th
更改为
1xx 2xx 3xx 4xx 5xx
。现在,您可以在模式中使用静态字符串“xx”。

Augu
st
与该正则表达式一起会发生什么?它变成八月了吗?我想我们的假设是先按空格分开,然后只处理日期中的某一天。很好。如果发生这种情况,现在可以使用成本较低的
替换
。谢谢你,克拉克。