2016-04-13 17 views
1

Bir json nesnesinde geçirdiğim tarihi gerekli formata dönüştürürken bir sorunla karşılaşıyorum. Arka uçtan aldığım tarih Apr-13, Wednesday, 04:06:00 PM. Yaptığım şey buydu.Java dateFormat Ayrılmaz bir tarih istisnası

String refreshDateString = jobj.optString("refresh_date").toString(); 
SimpleDateFormat parseFormat = new SimpleDateFormat("MMM-dd, EEEE hh:mm:ss a"); 
Date refreshDate = parseFormat.parse(refreshDateString.replaceAll("\\p{Cntrl}", "")); 
SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, E, hh:mm a"); 

Ayrıca EEEE yerine tek bir E kullanma denedim. Yanlış olduğum yerdeki herhangi bir girdi var mı? Çok teşekkürler!

cevap

0

Ayrıca, JodaTime kitaplığını veya Java 8'e dahil edilen Tarih API'sinin en yeni sürümünü kullanmanızı öneririm (bu, aslında JodaTime'ın kopyası ve kopyasıdır). Tarihlerle çalışmak daha iyi olduğu için. Yani verilen biçimin bir dize ayrıştırmak için irade var görünüyor

String string = "Apr-13, Wednesday, 04:06:00 PM"; 
DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM-dd, E, hh:mm:ss a"); 
DateTime dt = formatter.parseDateTime(string); 

bunu sadece kesin olmalıdır oluyor Kodunuzdaki tarihleri ​​dönüşüm vb bir sürü varsa

gibi.

+0

teşekkürler: Bu öneriyi gözden kaçırmış gibiydim! Yardımcı olur :) – user2604897

1

haftanın Gün adından sonra bir , eksik ve size haftasında Gün adından sonra bir , olması gerekmektedir bu formatı

DateFormat parseFormat = new SimpleDateFormat("MMM-dd, E, hh:mm:ss a"); 

kullanın EEEE yerine E kullanmalıdır; EEEE ve hhEEEE hh:mm:ss arasında daha fazla alanınız var. Bunu kullanın:

DateFormat parseFormat = new SimpleDateFormat("MMM-dd, E hh:mm:ss a"); 
+0

Arkadan virgül alamıyorum, Üzgünüm! Apr-13, Çarşamba 04:06:00 – user2604897

+0

Bir ton teşekkürler! Bu öneri için D – user2604897

0

Modelinizde ek alan ve virgül yok. Benim makine İtalyanca olduğundan, Benim durumumda

SimpleDateFormat parseFormat = new SimpleDateFormat("MMM-dd, EEEE, hh:mm:ss a", Locale.US); 

ben ayrıştırmak mümkün olmayacak yerel ayar olmadan,: sistem aldığınız tarihten daha farklı bir dilde ise önemli bir nokta olsa Yerel olduğunu verilen tarih.

İlgili konular