首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我不明白为什么我的电话使用本地时区的代码不能工作

我不明白为什么我的电话使用本地时区的代码不能工作
EN

Stack Overflow用户
提问于 2013-11-07 16:28:09
回答 1查看 41关注 0票数 0

我正在写一个使用UINotifications的应用程序,我有通知功能的代码,但无法获得正确的时区。

代码语言:javascript
运行
复制
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];

// Get the current date
NSDate *pickerDate = [self.datePicker date];
// Break the date up into components
NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit | NSTimeZoneCalendarUnit)
                                               fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit )
                                               fromDate:pickerDate];

我非常确定我在上面的NSDateComponents中得到了正确的结果

代码语言:javascript
运行
复制
// Set up the fire time
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];

这里是我非常确定应该为当前电话位置设置时区的地方

代码语言:javascript
运行
复制
[dateComps setTimeZone:[dateComponents timeZone]];

[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:[timeComponents second]];
NSDate *itemDate = [calendar dateFromComponents:dateComps];

NSLog(@"%@",[NSString stringWithFormat:@"%@",itemDate]);

我尝试将itemDate转储到日志文件中,得到的结果类似于GMT

代码语言:javascript
运行
复制
2013-11-07 00:24:14.559 IMOB[796:60b] 2013-11-07 08:23:56 +0000

正如您在日志文件行开头的时间戳中所看到的,它显示正确的时间为早上12:24,但输出为08:23

出什么问题了?

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 01:15:32

NSDate对象始终为协调世界时。根据您的区域设置,使用NSDateFormatter记录值。

[NSDateFormatter localizedStringFromDate:dateStyle:timeStyle:]非常方便。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19831062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档