2014-02-13 44 views
0

我有一个字符串星期二2月23日10:12:48 IST 2014,我想获取NSdate对象的形式。我使用下面的代码片段IST时区没有得到解析

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 
    NSDate *date = [formatter dateFromString:buildTime ]; 

每当我得到零值日期变量。如果我在编译时将IST更改为GMT,那么NSDate即将完成。任何人都可以纠正我在这里犯的错误。

+0

尝试使用'VVV',而不是'ZZZ'。我发现了另一篇文章,指出这将适用于'IST'时区。 – rmaddy

+0

感谢您的快速回复。但是VVV也不能正常工作 – ajay

回答

1

使用小的 'ZZZ' 而不是 'ZZZ',

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
NSLocale *indianEnglishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_IN"]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:indianEnglishLocale]; 
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"]; 
NSDate *date = [dateFormatter dateFromString:buildTime]; 
NSLog(@"date %@",date); 
NSLog(@"string %@",[dateFormatter stringFromDate:date]); 
+0

很好的代码片段;如果你想改变时区,在dateformatter之后添加''[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@“GMT”]];' – Pawan

+0

这是完美的工作,你可以告诉我,以取代IST明天太平洋时间PST即将到来什么是initWithLocaleIdentifier参数:,这只是我的小问题... – ajay

+0

您可以尝试研究PST - 美国/洛杉矶。通过打印[NSLocale availableLocaleIdentifiers]并使用适当的选项来检查区域设置标识符。 – Dhawal