首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTimeInterval of startOfDay NSDate to GMT

NSTimeInterval of startOfDay NSDate to GMT
EN

Stack Overflow用户
提问于 2013-08-04 20:33:24
回答 1查看 278关注 0票数 0

我正在尝试将时间设置为零的NSTimeInterval的NSDate,所以一天的开始,但总是给我的时区,即GMT+2,而不是格林尼治时间,我这样做:

这是在NSDate中设置一天开始的类别:

代码语言:javascript
复制
#define DATE_COMPONENTS (NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit |  NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit)
#define CURRENT_CALENDAR [NSCalendar currentCalendar]

- (NSDate *) dateAtStartOfDay
{
NSDateComponents *components = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:self];
components.hour = 0;
components.minute = 0;
components.second = 0;
return [CURRENT_CALENDAR dateFromComponents:components];
}

然后我就这么做:

代码语言:javascript
复制
NSTimeInterval now = [[[NSDate date] dateAtStartOfDay] timeIntervalSince1970];

给我这个NSTimeInterval:

代码语言:javascript
复制
1375567200

如果我查一下:

http://www.epochconverter.com

格林尼治时间是:

代码语言:javascript
复制
GMT: Sat, 03 Aug 2013 22:00:00 GMT

Mine tiem zone: 04 agosto 2013 00:00:00 CEST GMT+2

我怎么能总是有格林尼治时间间隔呢?我正在寻找一个解决方案,在纽约,罗马,里约热内卢,例如,必须给我的时间间隔到格林尼治标准时间,无论用户在哪里,谁可以帮助我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-04 20:36:47

currentCalendar获得的日历使用当前的区域设置,从而使用运行在任何系统上的时区。您应该为此计算创建自己的日历,将其时区设置为格林尼治标准时间。

代码语言:javascript
复制
NSCalendar * GMTCal = [[NSCalendar alloc] initWithCalendarIdentifier:[[NSCalendar currentCalendar] calendarIdentifier];
[GMTCal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18047304

复制
相关文章

相似问题

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