【问题标题】:java.text.ParseException: Unparseable date: "2018-07-22T14:00:00-03:00" [duplicate]java.text.ParseException:无法解析的日期:“2018-07-22T14:00:00-03:00”[重复]
【发布时间】: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


【解决方案1】:

将您的 SimpleDateFormat 替换为:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");

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

【讨论】:

  • 谢谢你。我得到的输出是 Sun Jul 22 17:00:00 GMT + 00:00 2018。我该怎么做才能退出 dd / MM / yyyy, 14:00
  • 仅供参考,非常麻烦的旧日期时间类,例如 java.util.Datejava.util.Calendarjava.text.SimpleDateFormat,现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。相反,OffsetDateTime 在这里工作。
  • 问题被标记为android,并且(非常)不幸的是,Android 没有按正常时间表获得 Java 功能。但是,有很多明显优于 java.util.Date 的第三方库可供使用。
  • 我相信最好的第三方库是the ThreeTenABP library,它是现代 Java 日期和时间 API java.time 到早期 Android 的反向移植。几乎不是第三方库,因为核心是由开发 java.time 的同一个人开发的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
相关资源
最近更新 更多