4

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

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

有没有简单的方法来打印这样的日期?或者我是否使用 ifelse 语句来检查当前语言环境并设置月份之前或之后的日期?

在此先感谢您的帮助。

4

4 回答 4

2

看看这个问题..... 我之前也遇到过同样的问题,但已经通过使用dateFormatnot thedateStyle

于 2009-12-11T14:09:34.483 回答
1

如果不是全部,这个功能看起来会让你大部分时间都在那里......

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

http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/clm/NSDateFormatter/dateFormatFromTemplate:options:locale:

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

我想如果您使用他们提供的示例,只需从

NSString *dateComponents = @"yMMMMd";

它会给你一个字符串,没有给定语言环境的年份部分

于 2009-12-11T13:17:37.637 回答
1

我找到了这个答案:在 iPhone 上使用 NSDateFormatter,保护语言环境但丢失日期组件

效果很好!

于 2009-12-11T13:56:00.820 回答
-1

似乎 if/else 不足以完成每个案例的任务。我会使用 NSDateFormatterLong 样式,然后只需查找/替换即可从字符串中删除年份。

于 2009-12-11T13:04:14.013 回答