我在iPhone编程中使用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
这是2011-03-14 00:00:00的GMT等价物。 (我的时区是GMT +08:00)
为什么我会这样?如何获得2011-03-14 00:00:00作为结果?
感谢。
〜扬
答案 0 :(得分:2)
您可以使用
设置时区[formatter setTimeZone:...]
。或者,我会尝试通过
设置格式化程序的语言环境NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"..."];
[formatter setLocale:locale];
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以尝试将时区添加到原始字符串
NSString *inputDate = @"2011-03-14+0800";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-ddZZZ"];
NSDate *entryDate = [formatter dateFromString:inputDate];
[formatter release]