2013-01-24 62 views
-1

我需要将NSDate转换为NSString,然后将此NSString转换为带有全部时间和日期的NSDate - 什么是最好的格式来存储这个?将NSDate存储为NSString并将其从NSString转换回NSDate的最佳方法

+0

如何转换和存储相关的? – 2013-01-24 12:15:13

+1

您应该解释为什么要将日期转换为字符串。字符串应该是人类可读的吗?它仅用于序列化吗? –

+0

你是否还需要语言环境信息?因为这不包含在NSDate中。 –

回答

5

转换为NSString, 首先NSTimeInterval然后创建NSString对象,并做你想做的。

转换为NSDate的, 先将其转换为NSTimeInterval(双值),并创建一个NSDate的对象

NSDate *date = [NSDate date]; 
//  convert to NSString 
NSString *strValue = [NSString stringWithFormat:@"%f", [date timeIntervalSince1970]]; 

//  convert to NSDate 
date = [NSDate dateWithTimeIntervalSince1970:[strValue doubleValue]]; 
+0

那么这是将日期存储到字符串中的最佳方式? 'strValue'将包含毫秒,如1359031737.046572。没有dateformatter'全日制和日期' –

+0

@AnoopVaidya所以我们可以使用@“%lf”(long float)前缀代替@“%f” – damithH

+0

请小心!我遇到了一种情况,使用这种方法转换为字符串(然后返回)导致两个日期不会相等。可能是由于内部实施的精确问题? 由于我的代码依赖于能够比较相等性,所以我被迫通过这种转换(两种方式)运行我的传入NSDate对象,以使它们均匀化,以便它们能够正确比较。 – pauln