localStringFromDate的反对:dateStyle:timeStyle:

时间:2013-02-22 14:45:01

标签: objective-c localization nsdate nsdateformatter

我通过以下方式设置日期格式:

[NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle]];

将它保存在某处,然后尝试访问它,我得到一个NSString。如何将其作为NSDate?

BTW:我想要一个方法,我把NSDateFormatterStyle作为参数。否则它将是错误的 - 在不同的语言环境中它将被保存为不同的字符串,因此将其格式化为

[dateFormat setDateFormat:@"yy/MM/dd"];

或此类任何其他选项 - 将产生错误。或者至少我是这么认为的;)。 感谢您的回复。

2 个答案:

答案 0 :(得分:1)

NSDateFormatter返回NSDate对象的NSString表示。 NSDate格式不敏感,这意味着它不依赖于某些区域设置,它实际上存储为数字。您可以使用NSDateFormatter将该数值表示为本地化表示。

要将NSString转换回NSDate,您可以使用以下内容:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yy/MM/dd"];
NSDate *myDate = [df dateFromString: dateString];

答案 1 :(得分:0)

听起来你想以一种可以完全解析的方式存储NSDate。在这种情况下,我建议将其存储为ISO8601日期,并且您需要使用更加自定义的nsdateformatter来执行此操作。 github或stackoverflow上有很多库/类别可以帮助你。