我们有一些现有的代码,如下所示:
DateFormat[] dateFormats = {
new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH),
new SimpleDateFormat("d MMM yyyy HH:mm:ss Z", Locale.ENGLISH)
};
出于线程安全原因,我尝试将其转换为使用 Joda Time 的格式化程序,因此:
DateTimeFormatter[] dateFormats = {
DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss Z")
.withLocale(Locale.ENGLISH)
.withOffsetParsed(),
DateTimeFormat.forPattern("d MMM yyyy HH:mm:ss Z")
.withLocale(Locale.ENGLISH)
.withOffsetParsed()
};
然而,令我惊讶的是现有的测试用例被破坏了。特别是(至少是导致测试失败的第一行):
String dateString = "Wed, 1 Feb 2006 21:58:41 +0000";
DateFormat 很乐意匹配逗号后的两个或多个空格,但 DateTimeFormatter 只匹配字面上的单个空格。
我可能可以添加一种允许额外空间的附加格式,但必须这样做有点可怕,所以有没有某种方法可以自定义 DateTimeFormatter 以更轻松地处理空格?