NSDate问题与区域设置

时间:2012-06-12 15:16:26

标签: objective-c nsdate nsdateformatter nslocale

我正在开发一款iPad应用程序,该应用程序与我构建的用于与数据库通信的私有PHP API对话。此API必须传输三个日期,开始时间,结束时间和当前时间。

我想测试当前时间是否介于日期范围之间。所以我花了很多时间(比如16:50:00)并将它们转换成NSDates:

NSDateFormatter *former = [[NSDateformatter alloc] init];
[former setDateFormat:@"HH:mm:ss"];
[former setLocale:[NSLocale currentLocale]];

NSDate *fromDate = [former dateFromString:@"10:15:00"];
NSDate *nowDate = [former dateFromString:@"13:25:00"];
NSDate *toDate = [former dateFromString:@"16:30:00"];

当我现在使用NSLog(@"\n%@\n%@\n%@", fromDate, nowDate, toDate);记录日期时,我发现区域设置不正确。

似乎NSDateFormatter忽略了语言环境设置。我还记录了currentLocales标识符,这是正确的标识符(在我的例子中是“de_DE”)。语言环境保持+0000。

如何解决此问题?谢谢,亲切的问候,朱利安

1 个答案:

答案 0 :(得分:2)

好的,我已删除之前的答案,请尝试以下

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSTimeZone *zone = [NSTimeZone localTimeZone];
[formatter setTimeZone:zone];
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *date = [formatter dateFromString:@"10:15:00"];

NSLog(@"Time %@",[formatter stringFromDate:date]);