2013-03-14 44 views
0

對於特定日期(即2013年3月13日),我得到空字符串。這裏是我的代碼:對於特定日期,NSDate爲空

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 
NSDate *myDate = [formatter dateFromString:@"12/03/2013 5:47:00 AM"]; 
NSDate *myDate1 = [formatter dateFromString:@"13/03/2013 6:25:48 AM"];   

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSString *datestr = [df stringFromDate:myDate]; 
NSString *datestr1 = [df stringFromDate:myDate1]; 
NSLog(@"date object %@,%@",datestr,datestr1); 
+4

myDate1是在第13個月? – danh 2013-03-14 04:33:33

+2

沒有月13.可能你打算使用dd/MM/yyyy而不是MM/dd/yyyy? – lnafziger 2013-03-14 04:33:43

回答

4

的問題是,你的日期格式爲MM/dd/yyyy HH:mm:ss a。你添加了一個日期,如:13/03/2013 6:25:48 AM

只有12個月有,無月供13

更改格式:dd/MM/yyyy HH:mm:ss a

+0

謝謝哥們.. :) – shivam 2013-03-14 04:57:38

+0

@shivam:高興:) – 2013-03-14 05:01:36

3

如果你看看日期格式的標準會更好。 Date and Time Formats

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 
    NSDate *myDate = [formatter dateFromString:@"12/03/2013 5:47:00 AM"]; 
    NSDate *myDate1 = [formatter dateFromString:@"13/03/2013 6:25:48 AM"]; 

    [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
    NSString *datestr = [formatter stringFromDate:myDate]; 
    NSString *datestr1 = [formatter stringFromDate:myDate1]; 
    NSLog(@"date object %@,%@",datestr,datestr1); 
+0

我想在yyyy-MM-dd HH:mm格式中輸入新的日期 – shivam 2013-03-14 04:35:26

+0

@shivam錯誤在於你形成日期。而且你也不需要創建新的dateFormatter來以不同的格式形成dateString。 – Anupdas 2013-03-14 04:36:55

+0

@shivam默認NSDateFormatter將有localTimezone。上面提到的代碼假定你的初始dateString在本地時區。如果不是,則需要在轉換爲日期之前明確設置時區。 – Anupdas 2013-03-14 04:50:50

2

因爲沒有第13個月。

2013年3月13日是無效日期,因爲您使用formatter作爲MM/dd // yyyy。

試試這個

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss a"]; 
NSDate *myDate = [formatter dateFromString:@"12/03/2013 5:47:00 AM"]; 
NSDate *myDate1 = [formatter dateFromString:@"13/03/2013 6:25:48 AM"]; 

NSLog(@"%@",myDate1); 


NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSString *datestr = [df stringFromDate:myDate]; 
NSString *datestr1 = [df stringFromDate:myDate1]; 



NSLog(@"date object %@,%@",datestr,datestr1);