【问题标题】:What template should I use in SimpleDateFormat?我应该在 SimpleDateFormat 中使用什么模板?
【发布时间】:2012-04-03 14:51:50
【问题描述】:

我的日期格式是这样的:

        2010-02-04T00:00:00

我用这段代码来解析它:

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-ddTHH:mm:ss");
        Date parsed = dateFormat.parse("2010-02-04T00:00:00");

它返回异常。问题出在“T”字母中。如果服务器以这种格式返回这个日期,我该如何解析它?

【问题讨论】:

    标签: android simpledateformat


    【解决方案1】:
    SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
    

    可以在这里阅读更多关于它的信息Using Alphabetic Characters in SimpleDateFormat Pattern String

    【讨论】:

      【解决方案2】:

      只需使用此字符串:"2010-02-04'T'00:00:00". '-字符转义字母,因此它们不会被解析为日期的一部分。

      或者正如SimpleDateFormat 的文档所解释的那样:

      可以使用单引号 (') 引用文本以避免解释。 "''" 表示单引号。所有其他字符都不是 解释;它们只是在期间被复制到输出字符串中 在解析过程中格式化或匹配输入字符串。

      【讨论】:

        【解决方案3】:

        试试这个:

          dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        

        编辑小写 m 以小时为单位每分钟停留。见doc

        【讨论】:

          【解决方案4】:
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
          SimpleDateFormat sdf2 = new SimpleDateFormat("EEE MMM dd'T' hh:mm:ss z yyyy");
          
          Date myDate = sdf.parse(strDate);
          sdf2.format(myDate);
          
          System.out.println(myDate);
          

          这会起作用...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-30
            • 1970-01-01
            • 2018-05-30
            • 2014-07-24
            • 2018-06-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多