我正在构建一个iOS应用程序,用户可以输入进入当地酒吧/餐厅的预计等待时间。为了提高可靠性,我希望能够跟踪用户何时输入信息,以及该时间到xml文件,然后能够将文件解析为表视图(使用先前的更新)以供其他人查看。表格单元格将显示位置名称,大致等待时间以及输入等待时间的时间。
基本上我想弄清楚的是如何在用户更改cel时格式化NSDate(我希望它看起来像时间,例如晚上10:30)。如果有时间,我如何找到当前时间和给定时间的差异?
由于
答案 0 :(得分:3)
那里有几个问题,其中没有一个与标题真正匹配,但这里是; - )
获取当前时间/日期:
NSDate *now = [NSDate date];
为了保存这个,我建议你将它存储在NSUserDefaults中:
[[NSUserDefaults standardUserDefaults] setObject:now forKey:@"startTime"];
[[NSUserDefaults standardUserDefaults] synchronize];
您可以稍后使用
重新加载日期NSDate *theDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"startTime"];
您可以使用NSDateFormatter将日期格式化为人类可读的内容,如下所示:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSString *time = [formatter stringFromDate:theDate]; // returns something like @"10:30"
您可以使用以下函数找到两个日期之间的差异:
NSTimeInterval differenceInSeconds = [date1 timeIntervalSinceDate:date2];
时间间隔以秒为单位,因此要将其转换为有用时间,您可以除以60得到分钟,再除以60得到小时等等。所以将其转换为人类可读时间:
NSTimeInterval differenceInSeconds = ...
NSInteger totalSeconds = floor(differenceInSeconds);
NSInteger seconds = totalSeconds % 60;
NSInteger minutes = totalSeconds / 60;
NSString *waitTime = [NSString strinWithFormat:@"%i minutes, %i seconds", minutes, seconds];