0

当我通过以下方式格式化日期时:

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

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

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

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

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

4

2 回答 2

1

NSDateFormatter 返回 NSDate 对象的 NSString 表示。NSDate 对格式不敏感,这意味着它不依赖于某些语言环境,它实际上存储为一个数字。您使用 NSDateFormatter 将该数值呈现为本地化表示。

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

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yy/MM/dd"];
NSDate *myDate = [df dateFromString: dateString];
于 2013-02-22T14:52:00.123 回答
0

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

于 2014-04-16T19:10:21.530 回答