【发布时间】:2017-01-25 12:53:15
【问题描述】:
在我的应用程序中,我需要获取来自 JSON 响应的给定日期的天数、小时数、分钟数和秒数。以下是我得到的日期和时间:
"date_time" = "2017-01-31 08:30:00";
并且需要计算剩余天数:6小时:18分钟:24秒:30
结束日期将是今天的日期。我尝试了下面的代码,但它给了我几天的负数(我认为它需要 UTC 时区)并且还尝试了很多关于 SO 的答案。
NSString *start = [[self.eventsArray valueForKey:@"date_time"]objectAtIndex:0];
NSDateFormatter *date = [[NSDateFormatter alloc] init];
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *end = [date stringFromDate:[NSDate date]];
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *startDate = [f dateFromString:start];
NSDate *endDate = [f dateFromString:end];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitDay
fromDate:startDate
toDate:endDate
options:0];
NSLog(@"day : %ld H: %ld M : %ld S:%ld", [components day], (long)[components hour],(long)[components minute],(long)[components second]);
请有人帮我困住。
【问题讨论】:
-
startDate 和 endDate 的值为 dateFromString:start 和 end 将是今天的日期。
-
看看
NSDateComponentsFormatter。
标签: ios objective-c nsdate nsdateformatter nsdatecomponents