Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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
java.text.ParseException:不可解析的日期:";2018-07-22T14:00:00-03:00“;_Java_Android_String_Date_Exception - Fatal编程技术网

java.text.ParseException:不可解析的日期:";2018-07-22T14:00:00-03:00“;

java.text.ParseException:不可解析的日期:";2018-07-22T14:00:00-03:00“;,java,android,string,date,exception,Java,Android,String,Date,Exception,PS:不可解析日期:“2018-07-22T14:00:00-03:00”等于getDepartureTime 请帮帮我。将您的SimpleDateFormat替换为: @Override public void onBindViewHolder(AirListAdapter.AirListViewHolder holder, int position) { final Flight flight = flightList.get(position); DateForm

PS:不可解析日期:“2018-07-22T14:00:00-03:00”等于getDepartureTime


请帮帮我。

将您的SimpleDateFormat替换为:

    @Override
public void onBindViewHolder(AirListAdapter.AirListViewHolder holder, int position) {
    final Flight flight = flightList.get(position);

    DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
    try {
        Date date = format.parse(flight.getRoutePoints().get(0).getDepartureTime());
        holder.departureTime.setText(date.toString());

    } catch (ParseException e) {
        e.printStackTrace();
    }

    holder.airportName.setText(flightList.get(position).getRoutePoints().get(0).getLocation().getAirport_name());
    holder.airportNameDestination.setText(flightList.get(position).getRoutePoints().get(0).getDestination().getAirportName());

}

字符串中的时区信息是ISO 8601时区,由
X
表示。另外,您不想引用
X
,因为您不是在寻找实际的字母X。

-03:00
不等于literal
'Z'
。不要引用
Z
——实际上,将
'Z'
替换为
X
。更接近于的副本:。使用<代码> OffStaseDeTime< /C> >在“:”代码> OffStDATECTIME.PARSE(“2018—0722T14:00:00~0300”)<代码>中考虑抛开长期过时和臭名昭著的麻烦代码< SimpleDateFormat <代码>和朋友,并添加到Android项目中,以便使用<代码> java。现代Java日期和时间API。使用它更好。一个解释:对于零(=UTC)时区,Z显示为+/-hh:mm。所以您的日期格式只接受UTC日期。我得到的输出是Sun Jul 22 17:00:00 GMT+00:00 2018。我该怎么做才能在14:00FYI的dd/MM/yyyyy退出,像和
java.text.simpleDataFormat等非常麻烦的旧日期时间类现在被java 8和更高版本中内置的类所取代。看见相反,
OffsetDateTime
在这里起作用。问题被标记为
android
,而且(非常)不幸的是,android没有按照正常的时间表获得java功能。但是,有很多明显优于java.util.Date的第三方库可供使用。我相信最好的第三方库应该是java.time的后端口,它是现代java日期和时间API的后端口,适用于早期的Android。几乎不是第三方库,因为核心是由开发java.time的同一个人开发的。
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");