CaCurrentMediaTime转换为它的日期和字符串对应物

时间:2012-06-29 17:36:52

标签: ios datetime core-data nsdate quartz-core

我正在尝试获取用户选择按钮的确切时间和日期,然后在取消选择时再次获取。

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

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

我在这里发现了一篇帖子,建议使用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];

任何想法/参考?

1 个答案:

答案 0 :(得分:0)

为什么不直接在核心数据中保存NSDate并忽略整个转换过程? NSDate是核心数据条目的自然数据类型。