2013-10-08 12 views
6

Ben bu soruna birçok cevapları okudum ama cevap bu dizeyi ayrıştırmak çalışıyorumjava.text.ParseException: Ayrıştırılamayan tarih: "" (0 uzaklığındaki)

benim sorunu çözer:

"2013-10-07T23:21:00+01:00"

SimpleDateFormat ile tarihi nesnesine

:

"yyyy-MM-dd'T'HH:mm:ssZZZZZ"

ama hatayı üreten tutar:

java.text.ParseException: Unparseable date: "" (at offset 0)

Not: Bunu Android'de deniyorum, yeni başlayan biriyim. Eğer java 7 kullanıyorsanız

+1

gerçek kaynak ve stacktrace gönderebilir misiniz ? –

+0

SO'ya hoş geldiniz. @GyroGearless'in dediği gibi, lütfen kodunuzu ve tam stacktrace'inizi eklemeyi düşünün. Bu bilgi size yardımcı olmak için her zaman yararlıdır. – dic19

+0

Özel durumdan boş bir dizeyi ayrıştırmaya çalışıyorsunuz gibi görünüyor. Ayrıştırma işlevinden önce dizeyi kontrol edin. – sjdutta

cevap

-2

, şunları kullanabilirsiniz:

yyyy-MM-dd'T'HH:mm:ssXXX 

kontrol edebilirsiniz daha here

+0

'X' mevcuttur Java 7'den beri. – DArkO

+2

Android maalesef Java 7'yi desteklemiyor –

2

kodu aşağıdaki ile deneyin

public static Calendar parseDate(String dateTimeStr) 
      throws ParseException { 
     Calendar calendar = GregorianCalendar.getInstance(); 
     String s = dateTimeStr.replace("Z", "+00:00"); 
     try { 
      s = s.substring(0, 22) + s.substring(23); 
     } catch (IndexOutOfBoundsException e) { 
      throw new ParseException("Invalid length", 0); 
     } 
     Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(s); 
     calendar.setTime(date); 
     return calendar; 
    }