创建我设置的日期的 NSDates
Creating NSDates that are the dates I set
考虑这段代码:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:2];
[comps setMonth:6];
[comps setYear:2016];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
如果我打印日期来安慰它是
2016-06-01 23:00:00 +0000
6 月 1 日,而不是 6 月 2 日。
有没有一种方法可以创建我想要的日期而不用 iOS 将其转换为疯狂的日期?
在我的时区,现在是 GMT+0800 (GMT+08:00) offset 28800
,所以打印日期来安慰它是
2016-06-01 16:00:00 +0000
如果要打印日期 2016-06-02 00:00 +0000
,您需要将时区 gmt 设置为 0。
gregorian.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
一句话"timezone".
这是世界上某个地方的 6 月 1 日和世界其他地方的 6 月 2 日,都在同一时刻。
配置您的时区并了解 [NSDate description]
在 UTC 中显示 date/times 并且 NSLog()
和调试器都使用 [NSDate description]
并且您应该是大多数人那里。
考虑这段代码:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:2];
[comps setMonth:6];
[comps setYear:2016];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
如果我打印日期来安慰它是
2016-06-01 23:00:00 +0000
6 月 1 日,而不是 6 月 2 日。
有没有一种方法可以创建我想要的日期而不用 iOS 将其转换为疯狂的日期?
在我的时区,现在是 GMT+0800 (GMT+08:00) offset 28800
,所以打印日期来安慰它是
2016-06-01 16:00:00 +0000
如果要打印日期 2016-06-02 00:00 +0000
,您需要将时区 gmt 设置为 0。
gregorian.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
一句话"timezone".
这是世界上某个地方的 6 月 1 日和世界其他地方的 6 月 2 日,都在同一时刻。
配置您的时区并了解 [NSDate description]
在 UTC 中显示 date/times 并且 NSLog()
和调试器都使用 [NSDate description]
并且您应该是大多数人那里。