我将我的 NSDate 存储到一个文件中,该文件采用您在 NSDate 上调用描述时获得的国际格式。
但是,我不知道如何从字符串格式返回到 NSDate 对象。 NSDateFormatter 似乎仅限于几种格式,不包括国际格式。
我应该如何从字符串格式返回?
最佳答案
Jeff 是对的,NSCoding
可能是序列化 NSDate
对象的首选方式。无论如何,如果您确实想要/需要将日期保存为纯日期字符串,这可能会对您有所帮助:
实际上,NSDateFormatter
根本不限于预定义的格式。您可以通过 dateFormat 属性设置任意自定义格式。以下代码应该能够解析“国际格式”的日期字符串,即。 NSDate
的 -description
使用的格式:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSDate* date = [dateFormatter dateFromString:@"2001-03-24 10:45:32 +0600"];
有关格式字符串语法的完整引用,请查看 Unicode standard .
但是,请小心使用 -description
- 这些方法的输出通常是针对人类读者的(例如日志消息),并且不能保证它不会更改其输出格式新的SDK版本!您应该使用相同的日期格式化程序来序列化您的日期对象:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSString* dateString = [dateFormatter stringFromDate:[NSDate date]];
关于iphone - 将 NSDate 的描述转换为 NSDate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349266/