SimpleDateFormat ishlamayapti

Men sochimni boshimdan uzib tashlayman. Ushbu mag'lubiyatni Sana obyektiga ajrating:

Fri, 28 Oct 2011 07:43:18 GMT

Lekin bu ishlamaydi. Buning o'rniga, bir ParseException olaman:

10-28 15:50:12.730: WARN/System.err(31232): java.text.ParseException: Unparseable date: Fri, 28 Oct 2011 07:43:18 GMT

Foydalanadigan kod quyidagilardan iborat: (va formatlash satrida bir nechta chiziqlarni sinchkovlik bilan sinab ko'rdim):

SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:m:s zzz");

Bilaman, Javas Sana va Vaqt saboqlari ko'p tilak beradi, lekin bu meni o'ldiradi ...

2

2 javoblar

sizning formatingiz bu kabi ko'rinadi (er-xotin mm va juft ss):

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
6
qo'shib qo'ydi
Bu xato emas, balki bir yoki ikkita (hatto uchta) "m" yoki "bit" moddalar ham bor. Hujjatlardan: "Matn: agar hisob 4 yoki undan ko'p bo'lsa, to'liq shakldan foydalaning, agar mavjud bo'lsa, qisqartirilgan yoki qisqartirilgan formadan foydalaning."
qo'shib qo'ydi muallif sebrock, manba
Nozik xatoga yo'l qo'yganingiz uchun +1 va birinchi javobingizni yozib qo'ying (Bu shuningdek, bu to'g'ri ;-) yordam beradi;
qo'shib qo'ydi muallif bakoyaro, manba

Locale.US dan foydalaning. Buning o'rniga harakat qilib ko'ring

SimpleDateFormat dateFormat = new SimpleDateFormat("EEE dd MMM yyyy HH:m:s zzz", Locale.US);
Date date = dateformat.parse("Oct 28 09:53:19 2011"); 
2
qo'shib qo'ydi
Xo'sh, bu yolg'iz emas edi. Biroq, aniq vaqt mintaqasini setTimeZone() bilan sozlash ishladi. Shunday qilib, bu kombinatsiya edi. Men buni sizga ham beraman, saxiylikni his qilaman.
qo'shib qo'ydi muallif sebrock, manba