2012-06-22 78 views
3

我想設置日期格式MMM DD,YYYY HH:MM,我和德做代碼這一點,但有一些東西錯了,我不要不知道。如何設置MMM DD,YYYY HH日期格式:mm的iPhone

NSDate *date = [NSDate date]; 
[format setDateFormat:@"MMM dd, yyyy HH:mm"]; 
NSLog(@"My date with out format = %@",date); 
date = [format dateFromString:[format stringFromDate:date]]; 
NSLog(@"My date is = %@",date); 

輸出

我的日期輸出格式= 2012-06-22 9時53分46秒+0000
我的日期是2012-06-22 = 9點53分00秒+0000

請幫我在哪裏,我做錯了。

在此先感謝。

回答

4

Firstoff,NSDate不知道的格式的任何東西日期。多數民衆贊成在NSDateFormatter進來。

date = [format dateFromString:[format stringFromDate:date]]; 

你在做什麼這裏是創建給定的格式,這也將導致移除時區的字符串。並從該字符串中創建新的日期。因爲它不再具有時區,將導致與GMT日期作爲時區。

但是,這仍然會導致NSDate持有秒,並且默認時區設置爲GMT

沒有必要做出新的Date對象,如果你想顯示的日期只是拿串的stringFromDate:方法返回。如果你不喜歡這樣它會工作:

NSDate *date = [NSDate date]; 
[format setDateFormat:@"MMM dd, yyyy HH:mm"]; 
NSLog(@"My date with out format = %@",date); 
NSString *dateString = [format stringFromDate:date]; 
NSLog(@"My date is = %@",dateString); 
1

你還沒告訴格式來顯示秒,要做到這一點加上 「HH:MM:SS

NSDate *date = [NSDate date]; 
[format setDateFormat:@"MMM dd, yyyy HH:mm:ss"]; 
NSLog(@"My date with out format = %@",date); 
date = [format dateFromString:[format stringFromDate:date]]; 
NSLog(@"My date is = %@",date); 
+0

奧馬爾我不需要秒我只需要MMM DD,YYYY HH:MM –

+0

@FaheemRajput - 請編輯的問題表明你想要什麼,因爲這答案讓你的格式一樣做不格式 – Mark

+0

@FaheemRajput問題不清楚 –

0
[format setDateFormat:@"YYYY-dd-MM HH:mm:ss z"]; 
1

試試這個:

NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
    NSDate *date = [NSDate date]; 
    [format setDateFormat:@"MMM dd, yyyy HH:mm:ss"]; 
    NSLog(@"My date with out format = %@",date); 
    NSString *dateStr = [format stringFromDate:date]; 

    //date = [format dateFromString:[format stringFromDate:date]]; 
    NSLog(@"My date is = %@",dateStr); 
+0

你忘了區域設置爲en_US_POSIX。處理定義的日期格式時,應始終這樣做。 –

相關問題