Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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
将日期从JSON解析为Java_Java_Android_Date_Android Studio - Fatal编程技术网

将日期从JSON解析为Java

将日期从JSON解析为Java,java,android,date,android-studio,Java,Android,Date,Android Studio,我正在调用web服务来检索日期。这些日期的格式是这样的 “2018-01-24T05:00:00.000Z” 现在,我需要将其解析为更清晰的内容,比如“dd-MM-YYYY”,例如1-24-2018 我怎么做 我正在使用Android Studio和Instant阅读,但它需要minSdkVersion 26,并设置为15,这对我来说非常合适。你可以试试这样的东西 我是在Eclipse中做的 public static void main(String[] args) throws Ex

我正在调用web服务来检索日期。这些日期的格式是这样的

“2018-01-24T05:00:00.000Z”

现在,我需要将其解析为更清晰的内容,比如
“dd-MM-YYYY”
,例如
1-24-2018

我怎么做


我正在使用Android Studio和Instant阅读,但它需要minSdkVersion 26,并设置为15,这对我来说非常合适。

你可以试试这样的东西

我是在Eclipse中做的

    public static void main(String[] args) throws Exception {


    String jsonDate = "2018-01-24T05:00:00.000Z";

    String[] split = jsonDate.split("-");

    System.out.println(split[0]);
    System.out.println(split[1]);
    System.out.println(split[2].substring(0, 2));

    String month = split[1].toString();
    String day = split[2].substring(0, 2).toString();
    String year = split[0].toString();

    System.out.println(month + "-" + day + "-" + year);
}
输出

2018年

01

二十四

01-24-2018


您可以使用JSON的自定义反序列化器来表示日期

您可以轻松地将它们解析为Java日期对象

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date date = dateFormat.parse("2018-01-24T05:00:00.000Z");

有关更多详细信息,请参见

能否发布更多格式示例,目前尚不清楚它的实际含义。您正在询问:1)如何解析日期,2)如何格式化日期。这两个问题已经被回答了无数次,你所要做的就是研究,也就是对这两个问题的网络搜索。我相信您可以在API级别15到10上使用
Instant
。你应该考虑这样做。在这种情况下,从带有子包的同一个包中导入
org.threeten.bp.Instant
和其他日期时间类。@gursheeshssingh,它显然是ISO 8601,定义得很好。例如,可以将格式描述为。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

private String formatDateFromString (String dateString) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS" );
            Date date = simpleDateFormat.parse(dateString);
            simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
            return simpleDateFormat.format(date);
        } catch (ParseException e) {
        }
        return "";
    }