Android使用SimpleDataFormat

Android使用SimpleDataFormat,android,Android,我从以下服务器获取数据: data = "2015-04-24T23:00:17+08:00" 我在UTC+8,我想得到 data = "2015-04-24 23:00:17" 我给这个编了程序 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); Data = formatter.parse(data); 但我明白了 Fri Apr 24 23:00:17 格林尼治标准时间+0800 2

我从以下服务器获取数据:

data = "2015-04-24T23:00:17+08:00"
我在UTC+8,我想得到

data = "2015-04-24 23:00:17"
我给这个编了程序

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Data = formatter.parse(data);
但我明白了

Fri Apr 24 23:00:17 格林尼治标准时间+0800 2015
我怎样才能纠正它

如果我使用

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-M-dd HH:mm:ss",Locale.ENGLISH);
我明白了


这不是我想要的

您缺少一个
区域设置

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);

请参阅。

了解需要将日期格式更改为的所需输出

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);

解析从服务器返回的日期后,就有了一个java.util.date对象。如果要转换为自己的格式,则必须再次格式化日期对象

private String getDate(String serverDate) {
    SimpleDateFormat serverFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    try {
        Date date = serverFormatter.parse(serverDate);

        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = myFormatter.format(date);

        return formattedDate;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}

Try
SimpleDateFormat formatter=newsimpledateformat(“yyyy-MM-dd HH:MM:ss”,Locale.ENGLISH)
private String getDate(String serverDate) {
    SimpleDateFormat serverFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    try {
        Date date = serverFormatter.parse(serverDate);

        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = myFormatter.format(date);

        return formattedDate;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}