gpt4 book ai didi

iphone - 如何从iphone IOS上的时间间隔解析和提取年,月,日等

转载 作者:可可西里 更新时间:2023-11-01 06:20:24 30 4
gpt4 key购买 nike

我正在慢慢进入 iOS 开发并尝试创建一个从特定日期开始的计数计时器。我已经找到了以秒为单位给出间隔的代码,但我无法弄清楚如何从中提取年/月/日/小时/分钟/秒值,以便在其自己的标签中将每个值显示为代码。

到目前为止,我已经发现以下内容会以秒为单位给出两个日期之间的间隔,我想做的是解析它并通过每秒更新 UILabel 将其显示在我的 View 中作为一个自动收报机NSTimer 并每 1 秒调用一次选择器,并在我的 View 中得到类似这样的内容:

6年10个月13天18小时25分18秒(显然每个标签都会随着时间的推移而相应更新)

NSDate *startDate = [df dateFromString:@"2005-01-01"];

NSTimeInterval passed = [[NSDate date] timeIntervalSinceDate: startDate];

谢谢

最佳答案

对两个日期使用 NSCalendar:

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options:(NSUInteger)opts

作为使用指定组件的 NSDateComponents 对象返回两个提供的日期之间的差异。

例子:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSDate *startingDate = [dateFormatter dateFromString:@"2005-01-01"];
NSDate *endingDate = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit;
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:startingDate toDate:endingDate options:0];

NSInteger days = [dateComponents day];
NSInteger months = [dateComponents month];
NSInteger years = [dateComponents year];
NSInteger hours = [dateComponents hour];
NSInteger minutes = [dateComponents minute];
NSInteger seconds = [dateComponents second];
NSLog(@"%dYears %dMonths %dDays %dHours %dMinutes %dSeconds", days, months, years, hours, minutes, seconds);

NSLog输出:

13Years 10Months 6Days 8Hours 6Minutes 7Seconds

关于iphone - 如何从iphone IOS上的时间间隔解析和提取年,月,日等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121147/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com