相关疑难解决方法(0)

消除了DateTimeFormat和Joda的DateTimeFormatter之间微妙的空白处理差异

我们有一些像这样的现有代码:

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)
};
Run Code Online (Sandbox Code Playgroud)

出于线程安全的原因,我尝试将其转换为使用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()
};
Run Code Online (Sandbox Code Playgroud)

但是,我发现现有的测试案例已经破裂,这令我感到惊讶.特别是(至少导致测试失败的第一行):

String dateString = "Wed,  1 Feb 2006 21:58:41 +0000";
Run Code Online (Sandbox Code Playgroud)

DateFormat愉快地匹配逗号后面的两个或多个空格,但DateTimeFormatter只按字面意思匹配单个空格.

我可能会添加一个额外的格式,允许额外的空间,但是这样做有点可怕,那么是否有一些方法可以自定义DateTimeFormatter以使空格更加轻松?

java jodatime datetime-format simpledateformat

4
推荐指数
1
解决办法
1157
查看次数