Having issues troubleshooting this error: Unparseable date: "June 17, 1985 11:33:00 UTC"

Having issues troubleshooting this error: Unparseable date: "June 17, 1985 11:33:00 UTC"

这似乎只发生在我的一小部分用户设备上,我无法重现这个问题,但它会破坏我的 Crashlytics 报告。

Non-fatal Exception: java.text.ParseException: Unparseable date: "June 17, 1985 11:33:00 UTC" (at offset 0)
   at java.text.DateFormat.parse(DateFormat.java:579)
   at me.calebjones.spacelaunchnow.content.services.LaunchDataService.parsePreviousResult(LaunchDataService.java:548)
   at me.calebjones.spacelaunchnow.content.services.LaunchDataService.getPreviousLaunches(LaunchDataService.java:243)
   at me.calebjones.spacelaunchnow.content.services.LaunchDataService.onHandleIntent(LaunchDataService.java:115)
   at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:148)
   at android.os.HandlerThread.run(HandlerThread.java:61)

似乎卡住了多个日期,但它们都是相同的格式。这是我解析它的代码。

        SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy kk:mm:ss zzz");
        df.toLocalizedPattern();

        JSONObject response = new JSONObject(result);
        JSONArray launchesArray = response.optJSONArray("launches");

        for (int i = 0; i < launchesArray.length(); i++) {
            try {
                launch.setLaunchDate(df.parse(launchesObj.optString("net")));
            } catch (ParseException e) {
                launch.setLaunchDate(null);
            }
        }

随时查看源代码:https://github.com/caman9119/SpaceLaunchNow/blob/master/mobile/src/main/java/me/calebjones/spacelaunchnow/content/services/LaunchDataService.java

设置语言环境解决了这个问题。

SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy kk:mm:ss zzz", Locale.US);