2012-10-01 25 views
6

NSDateFormatter ile ilgili bir sorun yaşıyorum. Bazı belirli tarihler için null döndürüyor.NSDateFormatter, belirli tarihler için null değerini döndürür

Bu fonksiyon davayı hata ayıklamak için vermedi:

- (void) debugTest:(NSString *)dateStr{ 

    NSLog(@"String: %@", dateStr); 

    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"yyyy-MM-dd"]; 

    NSDate *dateObj = [df dateFromString: dateStr]; 

    NSLog(@"Date: %@", dateObj); 

} 

Bu, bazı tarihlerde benim ölçüm değeridir:

String: 2012-10-18 
Date: 2012-10-18 03:00:00 +0000 
String: 2012-10-19 
Date: 2012-10-19 03:00:00 +0000 
String: 2012-10-20 
Date: 2012-10-20 03:00:00 +0000 
String: 2012-10-21 
Date: (null) 
String: 2012-10-22 
Date: 2012-10-22 02:00:00 +0000 
String: 2012-10-23 
Date: 2012-10-23 02:00:00 +0000 

Neden sadece tarih 2012-10-21 için boş dönüyor?

ben 2011-10-01 to 2014-11-01 gelen aralığı ile diğer testler yaptı ve şu tarihleri ​​null döndürdü:

2011-10-16, 2012-10-21, 2013-10-20, 2014-10-19 

Bu hata falan mı? Yanlış bir şey yapıyorum?

benim tarih biçimlendiricisine [df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; VE [df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; eklendi:

+0

İlgili? http://stackoverflow.com/a/4265130/343955 – adarshr

+0

Diğer sorunun çözümünü denedim ama benim için çalışmadı. Problemin farklı olduğunu düşünüyorum. – Rafael

+0

Kod düzgün çalışıyor. Listenin dışında bir şey var. Bu dizenin kapsam dışı kalmasını bekliyorum. Lütfen test kodunun kalanını gönderin. – madmik3

cevap

4

Benim kendi soru sadece aynı sorun olsun birisi durumunda kayıt cevap verecektir.

Yani, benim yeni kod şudur:

- (void) debugTest:(NSString *)dateStr{ 

    NSLog(@"String: %@", dateStr); 

    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
    [df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
    [df setDateFormat:@"yyyy-MM-dd"]; 

    NSDate *dateObj = [df dateFromString: dateStr]; 

    NSLog(@"Date: %@", dateObj); 

} 

ben iki özellik sorunu sabit ayar, sorun cihazın konfigürasyonu ilgiliydi düşünüyorum.

+0

Benim için çalışmadı. Hala kısmi sonuçlar alıyorum. Bazı boş değerler ve bir tarih dizesi. Nasıl çalışabildin? – AJ112

+0

Tam olarak benim için gönderdiğim ve çalıştım. Ama bunu uzun zaman önce yaptım, bu yüzden en son iOS sürümlerinde hala çalışıyor mu, bilmiyorum bir şey değişti. – Rafael

İlgili konular