2016-10-20 57 views
1

我想從nsdate中獲取小時:分鐘AM/PM。HH:MM am/pm無法從nsdate中獲取

NSDate *globalDateTime; //globaldate is : 2016-10-20 06:49:00 +0000 (UTC) 
NSString *dateString12 = [NSDateFormatter localizedStringFromDate:globalDateTime 
                  dateStyle:NSDateFormatterShortStyle 
                  timeStyle:NSDateFormatterFullStyle];  
    NSLog(@"%@",dateString12); 

結果我得到的是NSString的格式:20/10/16,下午2時03分00秒印度標準時間

預期的結果是NSString的格式:20/10/16,6:49: 00 PM印度標準時間

或者是有什麼辦法,我只能得到預期的結果中的NSString格式:下午6時49

dateString12是得到的NSLog東西在UTC格式或其他格式。它給了我適當的約會,但不給我適當的時間。

請幫我,我應該如何得到適當的時間。

+1

你的代碼沒有問題。 'dateString12'在當地時間。這就是你想要的,對嗎? – rmaddy

+0

@rmaddy是的。但我沒有得到當地時間。我認爲它正在轉換爲UTC或其他格式。 –

+0

你正在獲得當地時間。這就是'NSDateFormatter'在默認情況下所做的。當您查看'globalDateTime'的值時,您會看到它在UTC時間的值,而不是印度時間。無論您運行代碼的任何設備,「dateString12」的值都將在當地時間。 – rmaddy

回答

1

試試這個。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"hh:mm a"];// change here as per your need 
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
NSString *stringFromDate = [formatter stringFromDate: globalDateTime]; 
+1

不,你的回答是錯誤的,它返回無 –

+0

@KKRocks我試過這個。它給我零值 –

+0

我也試過這個代碼。它工作正常。我在這裏上傳screeshot。 – KKRocks