【问题标题】:Convert string with millisecond and timezone to Date将带有毫秒和时区的字符串转换为日期
【发布时间】:2017-04-06 11:32:17
【问题描述】:

我有这种格式的字符串: 2017-04-06T09:29:12.225Z

我需要我尝试过的日期格式:

   private Date convertStringToDate(String dateString) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
    Date convertedDate = new Date();
    try {
        convertedDate = dateFormat.parse(dateString);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return convertedDate;
}

但它显示无法解析的错误?

【问题讨论】:

    标签: java android android-studio android-date


    【解决方案1】:

    尝试毫秒应该是大写S

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

    【讨论】:

      【解决方案2】:

      从 Java 7 开始就可以使用

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

      X 代表 ISO 8601 时区,可能只是 Z(零时区)或类似 -08-0800-08:00。 另请参阅javadoc of SimpleDateFormat 中给出的表格。

      【讨论】:

        【解决方案3】:

        毫秒应该是大写的S,Z应该是单引号:

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

        【讨论】:

          【解决方案4】:

          试试

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-11
            • 2018-05-24
            • 2023-03-05
            • 2017-09-14
            • 1970-01-01
            相关资源
            最近更新 更多