NSDateFormatter 没有给出预期的结果

Posted

技术标签:

【中文标题】NSDateFormatter 没有给出预期的结果【英文标题】:NSDateFormatter not giving expected results 【发布时间】:2014-06-26 09:36:24 【问题描述】:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM YYYY"];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);

我正在尝试格式化 2013 年 10 月 14 日的日期,以从中获取 NSDate 对象。但由于某种原因,它没有按预期格式化。 这是我在控制台上登录后得到的日期对象,

formatted date 2012-12-22 18:30:00 +0000

我在这里做错什么了吗?

【问题讨论】:

似乎您需要在调用 dateFromString 之前将日期格式化程序样式设置为“中”,使用 [formatter setDateStyle:NSDateFormatterMediumStyle];正如这个问题的回答:***.com/questions/10518659/… 【参考方案1】:

您应该使用小写字母 yyyy,因为大写字母表示基于一周的日历年,您应该指定时区:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM yyyy"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);

【讨论】:

28 秒前,我正要按下 post answer 明白了!非常感谢 :) 为我节省了很多时间

以上是关于NSDateFormatter 没有给出预期的结果的主要内容,如果未能解决你的问题,请参考以下文章

Verilog 没有给出预期的结果

使用 sysdate 时的 Oracle SQL,为啥它没有给出预期的结果

列表、条件和循环没有给出预期的结果[关闭]

带有 Locale.getDefault() 的数字格式没有给出预期的结果

字符串拆分方法没有给出预期的结果[重复]

使用 Calabash 查询 all 没有给出预期的结果