无法获得用户设置的正确系统时间和时间

时间:2013-02-15 19:36:03

标签: iphone time timezone datepicker

我正在开发一个应用程序,我希望在用户设置的时间内触发本地通知,我只是面对问题才能获得正确的时间,所以我正在做的是:

NSDateFormatter *current = [[NSDateFormatter alloc] init];
[current setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[current setDateFormat:@"HH:MM:SS"];
NSDate *systemTime = [NSDate date];
[current setTimeZone:[NSTimeZone systemTimeZone]];

NSLog(@"Current time %@" ,[current stringFromDate:systemTime]);
temp = [timeSetter date];//this temp is NSDATE object

NSLog(@"USer time %@" ,[current stringFromDate:temp]);
value = [temp timeIntervalSinceDate:systemTime];//This value is Nstimeinterval instance/obj.

当我通过NSLog打印时,这些是我收到的结果Now you can c 23.11.31.323 is actual system time and im getting  23.02.32. Please help me , Thanks in advance

1 个答案:

答案 0 :(得分:1)

我刚刚运行了你的代码,并重现了类似的结果。问题出在-setDateFormat:方法 - 它应该是[current setDateFormat:@"HH:mm:ss"] - 这对我来说很合适。 在日期格式字符串M =月(02 = 2月),m =分钟,S =秒的分数和s =秒。

如果您查看date formatting上的Apple文档,您会看到格式字符串是以Unicode标准确定的。它们链接到各种版本;最近的是here