2016-03-26 12 views
0

Bu, yalnızca kullanıcı aygıtlarımın küçük bir bölümünde meydana geliyor gibi görünüyor, bu sorunu yeniden oluşturamıyorum ancak Crashlytics raporlarımı havaya uçuramıyorum .Bu hatayı gidermekle ilgili sorunlar yaşıyorum: Ayrılmamış tarih: "17 Haziran 1985 11:33:00 UTC"

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) 

Birden çok tarih sıkışmış gibi görünüyor, ancak hepsi aynı biçimde. İşte ayrıştırma kodum. https://github.com/caman9119/SpaceLaunchNow/blob/master/mobile/src/main/java/me/calebjones/spacelaunchnow/content/services/LaunchDataService.java

+2

İngilizce ay adlarını ayrıştırabilmesi için, formatı kendi yerel nesnesine ayarlamanız gerekir. Belki cihaz yerel ayarı İngilizce’ye ayarlanmamıştır. –

+0

Bu çok şükür! –

cevap

0

sorunu sabit yerel ayarlanması:

 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); 
      } 
     } 

buradaki kaynak bakmak için çekinmeyin.

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