一个关于NSDateFormatter的问题

2013-02-06 23:49:47 +08:00
 chouti
假设 date1 为 今天的日期,[NSDate date]

我有如下代码:

NSLocale *zhLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:zhLocale];
[formatter setDateStyle:NSDateFormatterFullStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];

NSString *dateString = [formatter stringFromDate:date1];
self.tableViewCell.detailTextLabel.text = dateString;

从以上代码我可以得到那个dateString为:「2013年2月6日 星期三」这样的字符串。

然后我再尝试着将 dateString 转换回 NSDate 时:

NSDate *date2 = [formatter dateFromString:dateString];

这时的date2 我期望是再转换成当前日期。可是不知道为什么新的日期变成了1999年的12月28日。

不知道是因为什么原因造成的,如果把 setDateStyle 的 NSDateFormatterFullStyle 改成 NSDateFormatterLongStyle 就没有这个问题。
2851 次点击
所在节点    iDev
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/59991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX