• Geek_0b75a1
    2019-06-15
    最近遇到个问题
    SimpleDateFormat dateFormat=new SimpleDateFormat("MMM d,yyyy hh:mm:ss a z");
    格式化:May 1, 2019 12:27:07 AM PDT
    在本地电脑上可以,但是到了linux服务器上就不可以了
    java.text.ParseException: Unparseable date: "May 1, 2019 12:27:07 AM PDT"
    能帮我解答下吗?
    展开

    作者回复: 囧,敲了半天本来想编辑,结果手一抖给删了。

    是这样的,我原封不动的用你给的format的日期字符串,解析也没有错误。我试过JDK8和11,都么有问题。

    但是我点进去SimpleDateFormat的parse方法,它报错的地方的源代码如下:

            ParsePosition pos = new ParsePosition(0);
            Date result = parse(source, pos);
            if (pos.index == 0)
                throw new ParseException("Unparseable date: \"" + source + "\"" ,
                    pos.errorIndex);
            return result;

    抛出错误的地方,有个pos.errorIndex告诉了是解析到哪个字符出错了。这个很有用,但是异常的message里却没有给出来这个信息。我也是服气了。

    建议你在linux服务器上catch住这个exception,人肉输出异常的errorOffset属性,再结合format和date字符串,就很容易判断是哪里不匹配了。

    我的一个猜测是空格的问题。

    “MMM d,yyyy hh:mm:ss a z”可以匹配你给的日期字符串,但是如果d和yyyy之间多一个空格,而日期字符串没有空格,就会出错,也就是“MMM d, yyyy hh:mm:ss a z”无法解析“May 1,2019 12:27:07 AM PDT”。

    你结合exception的errorOffset看一下吧,盯准空格别漏了。

    
     1
  • 吴军旗^_^
    2020-01-02
    一个问题, 写了两年php,感觉自己的面向对象思想还很弱,是否要集中时间学习java?

    作者回复:
    如果你想学习面向对象,Java可以说是最好的选择。这个教程中第二篇就是重点围绕面向对象讲的。

    
    
  • 张丽娜
    2019-06-15
    知道啦,感谢老师
    
    
  • 张丽娜
    2019-06-14
    等老师的更新,不过对于老师有个建议,在项目过程中解释一些知识点,整个感觉重点的知识介绍的不够详细,还有就是有点乱乱的感觉

    作者回复: 收到,这也是第二篇的一个变化,就是把语法点都放在代码里而不是PPT里。好处是语法的解释直接以注释的方式放在代码上,更直观,减少了代码和PPT之间的切换。但是有时候就会感觉比较乱,尤其是一个语法点涉及多个地方的代码的时候。一方面建议你根据代码里的// >> TODO个格式的语法点自己再复习一边语法,另一方面,我会注意讲一个语法完整的讲解,而非跟着代码跳着讲。谢谢

     2
    
  • 杨过
    2019-06-13
    打卡

    作者回复: 滴, 学生卡.

    
    
我们在线,来聊聊吧