NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitDay;
NSDateComponents*currentDC = [calendarcomponents:unitfromDate:self];
使用的是系统时区,当手机设置的时区不同时,返回的dateComponents也不同,因此造成日期显示错误。
例:
当传入的date同为:2020-08-10 16:00:00 +0000
系统时区A檀香山,返回的day为10
系统时区B中国大陆,返回的day为11
NSCalendar *calendar = [NSCalendar currentCalendar];
修改calendar的时区
calendar.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];