1

我需要一个指向 UTC 上周日中午的日期戳。我从上周日凌晨 12:00 动态创建日期得到了一些非常接近的结果 :

NSDate *today = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setLocale:[NSLocale currentLocale]];

NSDateComponents *nowComponents = [calendar components:NSYearCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:today];

[nowComponents setWeekday:1]; //Sunday
[nowComponents setHour:12]; // noon
[nowComponents setMinute:0];
[nowComponents setSecond:0];

NSDate *previousSunday = [calendar dateFromComponents:nowComponents];

但这给了我NSDate“当前时区中午”的对象,它通常与“GTM/UTC 中午”不匹配。如何更正此日期以考虑时区?

4

2 回答 2

2
 [nowComponents setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
于 2013-02-04T22:25:33.293 回答
0

日期UTC,问题是日期的 NSLog() 将显示您当前时区的日期/时间。

对于实际时间使用:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
NSLog(@"date: %@", [formatter stringFromDate:date]);
于 2013-02-04T22:39:54.613 回答