iOS 如何用另一种语言显示日期,

标签 ios

我最近一直在使用 NSLocalizedStrings 开发我们应用程序的法语版本,到目前为止一切正常。

但我现在的问题是日期。我经常在我的应用程序中根据情况以不同的格式显示日期。

例如:

-Fri Feb 22, 2013
-Monday February 18, 2013
-Feb 18
-Dec 5, 2012

事实是,法语中的日期不仅在月份名称上不同,而且在月、日和年出现的顺序上也不同。

例如:

-Dec 5, 2012 would be 5 Dec 2012
-Monday February 18, 2013 would be Lundi le 18 Fevrier 2013.

我的 Localizable.string 文件中有单独的月/日名称,但我该如何管理它的显示顺序。

我是否应该像这样检查当前设备语言的 if 语句?:

NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];

if([currentLanguage isEqualToString:@"fr"])
{
    //Handle French logic
}

这可能不是最好的方法。

有什么想法吗?

最佳答案

您应该使用 NSDateFormatter 并像这样将其提供给您所需的 NSLocale:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"];
dateFormatter.dateFormat = @"EEEE d MMMM yyyy HH:mm";

'EEEE' 是星期几的全称,在我的例子中,它将以荷兰语显示。

关于iOS 如何用另一种语言显示日期,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839186/

相关文章:

iphone - 为什么会出现 NSException 错误?

ios - Dropbox SDK-linkFromController : delegate or callback?

ios - 输入密码文本期间键盘大小变化是否有通知处理程序?

ios - 使用 Storyboard 功能在单个 UITableView 中使用多个 UITableViewCell

ios - Nil 与预期的参数类型 'UIImage' 不兼容

ios - iOS 10 及更高版本中的 EKEventStore requestAccessToEntityType 崩溃应用程序

iphone - 我将如何将一个 View Controller 推送到另一个没有 nib 文件的 View Controller ?

c++ - 如何在点击时更改 Sprite 图像

iphone - 从应用程序用户那里存储 SQLite 文件的位置

ios - Calendar.nextDate() 在使用 .backward 作为方向时表现得非常奇怪。仅限每月最后一天