iPhone SDK-NSDateFormatter日+;月

iPhone SDK-NSDateFormatter日+;月,iphone,nsdateformatter,Iphone,Nsdateformatter,我只想显示日期的日期和月份。基本上是NSDateFormatterLongStyle,但没有年份 我面临的问题是本地化。在英文版本中,它必须显示例如“1月14日”,在法文版本中必须显示“14 Janvier” 有没有一种简单的方法来打印这样的日期?或者我是否有使用ifelse语句来检查当前区域设置并设置月份的前一天或后一天 提前感谢您的帮助。如果/否则似乎不足以抓住每一个案例。我会使用NSDateFormatterLong样式,然后只需查找/替换就可以从字符串中删除年份。此函数看起来可以让您在大

我只想显示日期的日期和月份。基本上是NSDateFormatterLongStyle,但没有年份

我面临的问题是本地化。在英文版本中,它必须显示例如“1月14日”,在法文版本中必须显示“14 Janvier”

有没有一种简单的方法来打印这样的日期?或者我是否有使用ifelse语句来检查当前区域设置并设置月份的前一天或后一天


提前感谢您的帮助。

如果/否则似乎不足以抓住每一个案例。我会使用NSDateFormatterLong样式,然后只需查找/替换就可以从字符串中删除年份。

此函数看起来可以让您在大部分情况下都能找到年份

+ (NSString *)dateFormatFromTemplate:(NSString *)templateoptions:(NSUInteger)optslocale:(NSLocale *)locale

“不同的区域设置对日期组件的排序有不同的约定。您可以使用此方法为指定区域设置的给定组件集获取适当的格式字符串(通常使用当前区域设置请参见currentLocale)。”

我认为如果你使用他们提供的例子,只需从

NSString *dateComponents = @"yMMMMd";
它将为您提供一个字符串,其中没有给定区域设置的年份部分

我找到了以下答案:

它工作得很好

退房
我以前也遇到过同样的问题,但通过使用
dateFormat
而不是
dateStyle

解决了这个问题。不幸的是,这是针对桌面的,并且不适用于iPhone版本的NSDateFormatter。太糟糕了,这个解决方案本来是完美的!谢谢你的回答。对不起,我没有注意到这个功能不适用于iPhone=(感谢Ed的回复。问题是年份可能不同。当然,我可以搜索4位数字并删除它们。在实施此攻击之前,你确定没有更简单的解决方案吗?阅读nicoko的回复,它指的是从特定于区域设置的格式字符串中删除年份的方法,而不是从输出格式的日期字符串中删除年份ing。谢谢你,Madhup。我已经回答了我自己的问题,并发布了该答案的链接。