2011-03-16 63 views
1

我在iPhone编程中使用NSDateFormatter时出现问题。 以下是我的代码片段。NSDateFormatter行为问题

NSString *inputDate = @"2011-03-14"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd"]; 
NSDate *entryDate = [formatter dateFromString:inputDate]; 
[formatter release] 

我得到的结果是

2011-03-13 16:00:00 +0000

这是GMT相当于2011-03-14 00: 00:00。 (我的时区是格林尼治标准时间+08:00)

为什么我得到这个?如何获得2011-03-14 00:00:00作为结果?

谢谢。

〜一月

回答

2

您可以设置使用

[formatter setTimeZone:...] 

的时区。或者我会尝试只是

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"..."]; 
[formatter setLocale:locale]; 
+0

感谢您的回复。我尝试了两种,但结果相似。此外,我的格式化程序的时区和区域设置默认情况下已正确设置为本地设置。 – Jan 2011-03-16 07:59:53

0

设置格式化的语言环境,您可以尝试将时区添加到您的原始字符串

NSString *inputDate = @"2011-03-14+0800"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-ddZZZ"]; 
NSDate *entryDate = [formatter dateFromString:inputDate]; 
[formatter release] 
+0

感谢您的回复。但不幸的是,这并没有工作:( – Jan 2011-03-16 08:00:21