繁体   English   中英

将毫秒和时区的字符串转换为日期

[英]Convert string with millisecond and timezone to Date

我有以下格式的字符串: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;
}

但是它显示出不可解析的错误吗?

尝试毫秒应为大写S

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

毫秒应为大写S,Z应为单引号:

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

从Java 7开始,您可以使用

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

X代表ISO 8601时区 ,可以是Z (零时区),也可以是-08-0800-08:00 另请参见SimpleDateFormatjavadoc中给出的表。

尝试

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM