java.text.ParseException:不可解析的日期:";2018-07-22T14:00:00-03:00“;
PS:不可解析日期:“2018-07-22T14:00:00-03:00”等于getDepartureTimejava.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
请帮帮我。将您的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");