Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android将T00:00:00.000Z日期转换为简单可读的日期格式_Android_Date - Fatal编程技术网

Android将T00:00:00.000Z日期转换为简单可读的日期格式

Android将T00:00:00.000Z日期转换为简单可读的日期格式,android,date,Android,Date,如何将此日期格式转换为简单格式,如2016-12-02T00:00:00.000Z,例如2016-12-02 12:00:00 我在谷歌和这个网站上找不到任何解决方案,我是从web服务获得这种格式的 这是我的解决方案,但它不能正常工作,我得到了错误: Method threw 'java.text.ParseException' exception. 我的代码: ISO8601 df = new ISO8601(); if (!channel.getString("createdAt").eq

如何将此日期格式转换为简单格式,如
2016-12-02T00:00:00.000Z
,例如
2016-12-02 12:00:00

我在谷歌和这个网站上找不到任何解决方案,我是从web服务获得这种格式的

这是我的解决方案,但它不能正常工作,我得到了错误:

Method threw 'java.text.ParseException' exception.
我的代码:

ISO8601 df = new ISO8601();
if (!channel.getString("createdAt").equals("0000-00-00 00:00:00") && channel.getString("createdAt").length() > 0) {
    Calendar ca        = df.toCalendar("2016-12-02T00:00:00.000Z");
    String   createdAt = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(df.toCalendar(channel.getString("createdAt")).getTimeInMillis());
    info.setCreated_at(createdAt);
}
ISO8601
转换类
ISO8601
日期

public final class ISO8601 {
    /**
     * Transform Calendar to ISO 8601 string.
     */
    public static String fromCalendar(final Calendar calendar) {
        Date date = calendar.getTime();
        String formatted = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
                .format(date);
        return formatted.substring(0, 22) + ":" + formatted.substring(22);
    }

    /**
     * Get current date and time formatted as ISO 8601 string.
     */
    public static String now() {
        return fromCalendar(GregorianCalendar.getInstance());
    }

    /**
     * Transform ISO 8601 string to Calendar.
     */
    public static Calendar toCalendar(final String iso8601string)
            throws ParseException {
        Calendar calendar = GregorianCalendar.getInstance();
        String   s        = iso8601string.replace("Z", "+00:00");
        try {
            s = s.substring(0, 22) + s.substring(23);  // to get rid of the ":"
        } catch (IndexOutOfBoundsException e) {
            throw new ParseException("Invalid length", 0);
        }
        Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(s);
        calendar.setTime(date);
        return calendar;
    }
}
试试这个:

 String  createdAt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(df.toCalendar(channel.getString("createdAt")).getTimeInMillis());
以下是一个例子:

String string = "2016-12-02T00:00:00.000Z";
String defaultTimezone = TimeZone.getDefault().getID();
Date date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")).parse(string.replaceAll("Z$", "+0000"));

Log.i("string: " + string);
Log.i("defaultTimezone: " + defaultTimezone);
Log.i("date: " + (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")).format(date));
试试这个:

 String  createdAt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(df.toCalendar(channel.getString("createdAt")).getTimeInMillis());
以下是一个例子:

String string = "2016-12-02T00:00:00.000Z";
String defaultTimezone = TimeZone.getDefault().getID();
Date date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")).parse(string.replaceAll("Z$", "+0000"));

Log.i("string: " + string);
Log.i("defaultTimezone: " + defaultTimezone);
Log.i("date: " + (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")).format(date));

此异常在何处引发?@rafsanahmad007在此行中的形式为`String createdAt=new SimpleDateFormat(“yyyy-mm-dd HH:mm:ss”).format(df.toCalendar(channel.getString(“createdAt”).getTimeInMillis())`此异常在何处引发?@rafsanahmad007在此行中的形式为`String createdAt=new SimpleDateFormat(“yyyy-mm-dd HH:mm:ss”).format(df.toCalendar(channel.getString(“createdAt”).getTimeInMillis())`很乐意帮忙。@naveedahmaddy乐意帮忙。@NaveedAhmad