NSDateFromatter 没有给出正确的 MMMM 值

Posted

技术标签:

【中文标题】NSDateFromatter 没有给出正确的 MMMM 值【英文标题】:NSDateFromatter not giving the proper MMMM value 【发布时间】:2010-12-04 00:07:43 【问题描述】:

这让我发疯了,有人请告诉我我在哪里搞砸了。

我也创建了一个新项目来测试它。环境是在模拟器中运行的xcode 3.2.5,在设备上运行结果相同。

当我创建一个日期格式化程序并设置其格式然后传入一个字符串时,日期格式化程序无法正常工作。

int tmpMonth = 11;
int tmpYear = 2010;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
[dateFormatter setDateFormat:@"m/d/yyyy"];
NSString *dateAsString = [[NSString alloc] initWithFormat:@"%d/23/%d",tmpMonth,tmpYear];
NSDate *theDate = [[NSDate alloc] initWithTimeInterval:0 sinceDate:[dateFormatter dateFromString:dateAsString]];
[dateFormatter setDateFormat:@"MMMM d, yyyy"];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
[dateFormatter setDateFormat:@"m/d/yyyy"];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);
[dateFormatter release];
[theDate release];
[dateAsString release];

这会导致以下输出:

[Session started at 2010-12-03 17:47:04 -0600.]
2010-12-03 17:47:05.274 wtfDateFormatter[18970:207] January 23, 2010
2010-12-03 17:47:05.277 wtfDateFormatter[18970:207] 11/23/2010

我不确定为什么在我给它格式 MMMM 时它会打印一月,因为这在我的应用程序的其他部分工作得很好,它只是使用不同的 NSDate 源。

【问题讨论】:

【参考方案1】:

您使用“m”作为月份编号,用于解释和生成字符串。不幸的是,'m' 是分钟。请改用“M”。

【讨论】:

该死。就是这样。我知道我已经看这个太久了【参考方案2】:

如果将 tmpMonth 设置为 12,输出会是什么?我想知道它会留在一月还是切换到二月?

【讨论】:

以上是关于NSDateFromatter 没有给出正确的 MMMM 值的主要内容,如果未能解决你的问题,请参考以下文章

为啥 QDatastream 没有给出正确的输出

为啥 filter + abs 函数没有给出正确的值

Spark UDF 没有正确给出滚动计数

本地存储没有给出正确的结果

访问 mdb 没有给出正确的结果

mysql。函数 ROUND 没有给出正确的值