iOS计算上周日中午UTC的日期戳



我需要一个日期戳,它指的是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的中午"不匹配。如何根据时区更正此日期?

 [nowComponents setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

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

对于实际时间使用:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
NSLog(@"date: %@", [formatter stringFromDate:date]);

最新更新