如何格式化日期/时间字符串?(Java)

Wil*_*lli 1 java parsing calendar

嗨,有人可以帮忙吗?我正在尝试格式化日期和时间字符串。目前看起来像这样“ 20160112T110000Z”我需要它是“ 2016-01-12T11:00:00Z

没有特殊字符的字符串从第3方重复库中返回。我需要先将其转换为具有特殊字符,然后再将其解析为Calendar对象。

有人可以帮忙吗?

到目前为止,我的代码如下所示:

 final String TIMEFORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
 String string = "20160112T110000Z";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
    Date date = format.parse(string);
    System.out.println(date); 
Run Code Online (Sandbox Code Playgroud)

但是,这是行不通的。

任何建议表示赞赏

Arn*_*aud 6

您必须使用与源匹配的格式读取字符串,这为您提供了一个正确的Date

然后只需使用所需的格式编写它:

    String string = "20160112T110000Z";

    String originalStringFormat = "yyyyMMdd'T'HHmmss'Z'";
    String desiredStringFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'";

    SimpleDateFormat readingFormat = new SimpleDateFormat(originalStringFormat);
    SimpleDateFormat outputFormat = new SimpleDateFormat(desiredStringFormat);

    try {
        Date date = readingFormat.parse(string);
        System.out.println(outputFormat.format(date));
    } catch (ParseException e) {

        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)