我创建了一个每周视图(类似于日历),其中包含标题星期几。我使用以下代码创建当前时间:
+(NSDate *) getCurrentDate {
NSDate* datetime = [NSDate date];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"America/Juneau"];// this is dynamic and coming from server.
[dateFormatter setTimeZone:timeZone]; // Prevent adjustment to user's local time zone.
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSString* dateTimeInIsoFormatForUserTimeZone = [dateFormatter stringFromDate:datetime];
return [dateFormatter dateFromString:dateTimeInIsoFormatForUserTimeZone];
}
我使用此日期作为参考来创建周日期(从星期一到星期日)。我的代码适用于所有情况,但我在DST时区失败。
我在堆栈溢出上看到了类似的问题,但它们更主观,无法解决我的问题。我们非常感谢您回答代码和最佳实践。提前致谢!。
答案 0 :(得分:1)
[[NSTimeZone *yourTimeZone*] secondsFromGMTForDate:*yourDate*]
使用此方法,您可以获取特定secondsFromGMTForDate
的{{1}},该timezone
也会使用夏令时进行调整。
您可以使用此偏移量在时区中创建日期对象,并相应地显示周视图。