【发布时间】:2018-09-25 20:46:51
【问题描述】:
@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());
}
PS:无法解析的日期:“2018-07-22T14:00:00-03:00”等于 getDepartureTime。
请帮帮我。
【问题讨论】:
-
-03:00不等于文字'Z'。不要引用Z。 --- 实际上,将'Z'替换为X。 -
更接近于:Java SimpleDateFormat for time zone with a colon separator? 的副本。使用
OffsetDateTime查找答案,如:OffsetDateTime.parse( "2018-07-22T14:00:00-03:00" ) -
顺便考虑扔掉早已过时且臭名昭著的麻烦
SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。 -
解释:对于零 (=UTC) 时区 Z 显示为 +/- hh:mm。所以你的日期格式只接受 UTC 日期。
标签: java android string date exception