0

我试图在用户选择一个按钮时获得确切的时间和日期,然后在他们取消选择它时再次获得。

到目前为止,我一直在使用 NSDate dateWithTimeIntervalSince1970。这让我得到毫秒(浮点数),这很容易转换为 NSDate,然后转换为字符串。但是我现在已经多次注意到,与我的 Iphone 4S 上的实时时间相比,这并没有给出绝对时间,最多相差 1 或 2 分钟。

在这里使用毫秒浮点数的原因是因为它可以很容易地发送到不同的方法,允许它保存到 NSNumber 中的核心数据,从而允许以后轻松计算。

我在这里找到了一篇文章,建议使用 CACurrentMediaTime ,但我未能成功地将其转换为日期和该日期的字符串:

double CurrentTime = CACurrentMediaTime();

NSDate dateWithTimeIntervalSinceNow 给出了正确的日期,只是模拟器上的时钟比我的 Mac 上的实际时钟早了大约 35 到 45 分钟。

当前的转换是这样的:

NSDate *conversion = [NSDate dateWithTimeIntervalSince1970:startTimeInMiliSeconds];
NSDateFormatter *formatter;
NSString        *dateString;
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];
dateString = [formatter stringFromDate:conversion];

有什么想法/参考吗?

4

1 回答 1

0

为什么不直接将NSDates 保存在 Core Data 中,省略整个转换过程呢?NSDates 是核心数据条目的自然数据类型。

于 2012-06-29T17:47:56.490 回答