0
在我的应用程序中,我必须显示一周的日期值。它在iPhone上正常工作,但在iPad中无法正常工作。修复bug:日期值适用于iPhone,但不适用于iPad
1,本图显示了在iPhone上的文本框上方的日期值(21 ... 27)
2,本图显示的文本框中错误日期值(3)上述在iPad中。
对于这个我的一段代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// here the self.startday value has been passed from one controller to another.
_datelabel.text = self.startday;
// here the self.startday [email protected]"2016-02-23"
[self method1];
[self getdateArray];
[self method2];
}
我的方法的一段代码获取日期:
-(void) get date
{
NSString *dateStr,*strday;
NSString *[email protected]"yyyy-MM-dd";
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:dateFormat];
NSDate *date = [dateFormatter1 dateFromString:self.startday];
NSLog(@"%@",date);
NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date];
NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:date];
NSTimeInterval gmtInterval = currentGMTOffset - gmtOffset;
NSDate *destinationDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date];
NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
[dateFormatters setDateFormat:dateFormat];
[dateFormatters setTimeZone:[NSTimeZone systemTimeZone]];
dateStr = [dateFormatters stringFromDate: destinationDate];
self.wkDateArray = [[NSMutableArray alloc] init];
self.wkDayArray = [[NSMutableArray alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
for(int i =0 ;i<7;i++)
{
NSDate *newdate = [destinationDate dateByAddingTimeInterval:60*60*24*i];
NSDateComponents *comp =[calendar components:NSCalendarUnitDay fromDate:newdate];
strday = [NSString stringWithFormat:@"%ld",[comp day]];
[self.wkDayArray insertObject:strday atIndex:i];
dateStr = [dateFormatters stringFromDate: newdate];
[self.wkDateArray insertObject:dateStr atIndex:i];
}
NSLog(@"%@",self.wkDayArray[0]);
NSLog(@"%@",self.wkDateArray[0]);
}
//记录仪这一行:
NSDate *date = [dateFormatter1 dateFromString:self.startday];
NSLog(@"%@",date);
如果我在“iPhone目的地”把记录器的“日期”输出将是:
iphone:2016-02-20 18:30:00 +0000
如果我把记录的日期在“iPad的目的地”输出将是:
ipad:(null)
后来我总结由于这个空值,已经设置了一些错误的值。
为什么它在iPad目的地显示空值?对此有什么确切的解决方法?提前致谢请帮助我。
帮我解决这个问题。 – jsaonboo
iPAd模拟器给出相同的输出? –
的iPad有相同的时区/位置吗? –