【问题标题】:cannot parse the String to Date object无法将字符串解析为日期对象
【发布时间】:2016-08-08 11:26:13
【问题描述】:

我有一个这种格式的字符串:2016-08-08T10:27:06.282858+00:00

我想解析这个字符串来获取 Date 对象。 我试过了

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");

但我收到错误消息:Unparseable date: "2016-08-08T11:06:22+00:00" (at offset 19)

我尝试了所有其他格式来代替“Z”作为“X”、“XXX”,但似乎没有任何效果。

【问题讨论】:

  • 像这样使用SimpleDateFormat sourceDateFormat = new SimpleDateFormat("yyyy-MM-dd),你就可以通过这样做解析date object
  • @NitinMisra 我想对完整的字符串进行排序以获得日期中的总毫秒数。
  • @duffymo 我无法解决您作为重复附加的线程中存在的解决方案的问题。
  • 我已经删除了副本。让我们看看我们是否可以做得更好。
  • @Ran94 看问题的图块cannot parse the String to Date object

标签: java android simpledateformat


【解决方案1】:

正确的格式是“yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX”。 ' ' 用于转义符号并避免对其进行解析。

【讨论】:

    【解决方案2】:

    模式末尾的'Z' 似乎是问题所在。我删除了它并且解析工作:

    @Test
    public void testParsing() throws Exception {
        String text = "2016-08-08T10:27:06.282858+00:00";
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
    
        Date date = df.parse(text);
        System.out.println(date);
    }
    

    输出:

    Mon Aug 08 10:31:48 CEST 2016
    

    【讨论】:

      【解决方案3】:

      @Ran94 您正在尝试解析错误的日期,即 2016-08-08T11:06:22+00:00 并且似乎无效,正确的可能值应该是 2016-08-08T11:06:22+0000可以用这种格式yyyy-MM-dd'T'HH:mm:ssZ来表示。希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-09
        • 1970-01-01
        • 2020-07-10
        相关资源
        最近更新 更多