2012-10-01 50 views
1

其他人注意到iOS 5.1和iOS 6.0之間的一些差異?在下文中,日期字符串格式回來在不同的每個版本:NSDateFormatteriOS 5.1和iOS 6中NSDateFormatter的行爲

*dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss (vvvvv)"; 
NSDate *lDate = [[NSDate alloc]init]; 
NSString *sDate = [dateFormatter stringFromDate:lDate]; 

在iOS系統5.1,SDATE是「10/01/2012 16時43分09秒(格林尼治標準時間05:00)」 但在iOS 6.0中,sDate是「2012年10月1日16:44:09()」

任何想法,爲什麼這將是?

回答

2

更換@"MM/dd/yyyy HH:mm:ss (vvvvv)";@"MM/dd/yyyy HH:mm:ss ('GMT'Z)";

Z格式字符串將輸出什麼你vvvvv正在做除了GMT前綴也沒有冒號。

如果需要結腸,你可以加入這一行,將其添加到字符串:

sDate = [NSString stringWithFormat:@"%@:%@", [sDate substringToIndex:sDate.length-3], [sDate substringWithRange:NSMakeRange(sDate.length-3, 3)]]; 
1

我認爲這個解決您的問題(只能使用一個V):

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss (V)"; 
NSDate *lDate = [[NSDate alloc]init]; 
NSString *sDate = [dateFormatter stringFromDate:lDate]; 
+0

您可以在本[鏈接](http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns)中查看iOS6中使用的所有日期格式化程序, – Piterlouis

1

我IST而不是GMT。我在IOS 5中使用了V,但IOS6不能正常工作。