iphone - 如何使 NSDateFormatter 显示特定于语言环境的日期?

标签 iphone uikit

我正在使用 NSDateFormatter 在 iPhone 应用程序中设置日期,并且日期显示正确。但是,我发现所有区域设置(我的应用程序支持多达 12 种不同的语言)都遵循我通过 setDateFormat 指定的日期格式。理想情况下,我希望日期格式以适合用户区域设置的自然形式显示,而不是遵循我的格式(这适用于英语,但对于其他区域设置可能不自然)。

以下是我的代码:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateFormat:@"MMMM dd, yyyy kk:mm:ss"];

    self.creationDate.text = [dateFormatter stringFromDate:creationTimeStamp];

最佳答案

我会尝试使用以下 NSDateFormatter API:

+ (NSString *)localizedStringFromDate:(NSDate *)date
              dateStyle:(NSDateFormatterStyle)dateStyle
              timeStyle:(NSDateFormatterStyle)timeStyle;

像这样:

self.creationDate.text = [NSDateFormatter localizedStringFromDate:creationTimeStamp
                                          dateStyle:NSDateFormatterMediumStyle
                                          timeStyle:NSDateFormatterShortStyle];

这应该为您提供所需的输出,稍微整理一下代码,并使您不必管理一些虚假内存。

关于iphone - 如何使 NSDateFormatter 显示特定于语言环境的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348590/

相关文章:

iphone - 处理变量分配和异步请求

iphone - Objective-c iPhone 百分比编码一个字符串?

iphone - UITableView中的iOS折叠标题部分?

ios - 限制支持的 Dynamic Type 字体大小

css - 在响应式设计中同时使用 Canvas 外和固定导航栏

iphone - 在后台线程中显示 UIAlertView

iphone - 在默认的 UIScrollView 平移手势识别器中检测 UIGestureStateEnded

ios - 在应用商店(应用内)方法上评分 - 错误 : "Your request produced an error. [newNullLineResponse]". 重新提交新应用

ios - 为编程 View 层次结构设置自动布局约束?

ios - 显示 QLPreviewController 后 UIActionSheet 按钮掩码搞砸了