2016-10-20 32 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