
我试图做以下代码:
- (voID)awakeFromInsert{ NSDateComponents *comps = [[NSDateComponents alloc] init]; comps.minute = 45; comps.second = 0; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIDentifIEr:NSGregorianCalendar]; self.periodDuration = [calendar dateFromComponents:comps]; NSLog(@"periodDuration: %@",self.periodDuration); comps = [[NSDateComponents alloc] init]; comps.hour = 8; comps.minute = 0; self.firstPeriodStartTime = [calendar dateFromComponents:comps]; NSLog(@"firstPeriodTime: %@",self.periodDuration);} 但我得到的结果是:
periodDuration: 0001-12-31 22:24:04 +0000firstPeriodTime: 0001-12-31 22:24:04 +0000
结果我期待:
periodDuration: 45:00firstPeriodTime: 08:00
我究竟做错了什么?我怎样才能解决这个问题?
谢谢.
如果您尝试使用此代码剪切,您可以发现,如果您只是将日期转换回字符串,它就像您期望的那样
NSDateComponents *comps = [[NSDateComponents alloc] init];comps.minute = 45;comps.second = 0;NSCalendar *calendar = [NSCalendar currentCalendar];NSDate *periodDate = [calendar dateFromComponents:comps];NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"mm:ss"];NSLog(@"periodDuration: %@",[dateFormatter stringFromDate:periodDate]);comps = [[NSDateComponents alloc] init];comps.hour = 8;comps.minute = 0;NSDate *firstPeriodDate = [calendar dateFromComponents:comps];[dateFormatter setDateFormat:@"HH:mm"];NSLog(@"firstPeriodTime: %@",[dateFormatter stringFromDate:firstPeriodDate]);
periodDuration:45:00
firstPeriodTime:08:00
总结以上是内存溢出为你收集整理的ios – 尝试仅将NSDate用于时间全部内容,希望文章能够帮你解决ios – 尝试仅将NSDate用于时间所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)