ios - 在设备当前区域设置后格式化日期和时间

标签 ios localization nsdate date-formatting

我有一个 NSDate 对象,我从中创建了两个 NSString:日期和时间。目前我将日期格式化为 20111031,将时间格式化为 23:15。

我想做的是将其格式化为设备(iPhone、iPad、iPod Touch)当前区域设置(不是语言!)。例如:

  • 设置为美国地区的设备会显示(从我的头顶)10.31.11 和时间晚上 11:15
  • 设置为荷兰地区的设备将显示:31-10-2011 和时间 23.15
  • 设置为瑞典语地区的设备会显示:2001-10-31 和时间 23:15

我该怎么做?

最佳答案

以下内容应该足够了,因为 NSDateFormatter 默认具有手机的默认语言环境:

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSLog(@"%@",[dateFormatter stringFromDate:date]);

仅供引用,这是美国、荷兰和瑞典发生的情况:

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
NSLog(@"%@",[dateFormatter stringFromDate:date]);
// displays 10/30/11 7:09 PM 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"]];
NSLog(@"%@",[dateFormatter stringFromDate:date]);
// displays 30-10-11 19:09
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"sv_SE"]];
NSLog(@"%@",[dateFormatter stringFromDate:date]);
// displays 2011-10-30 19:09

关于ios - 在设备当前区域设置后格式化日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941789/

相关文章:

xcode - 确定给定年份中阵亡将士纪念日的 NSDate

ios - Facebook 个人资料图片不显示 Swift

objective-c - iOS 如何处理数据库更新所需的时间

python - 使用逗号或点作为分隔符将 Python 字符串显式转换为 float

iphonesdk日期格式问题

ios - NSDate 中的时间/日期显示就像 iOS 中的消息和邮件应用程序一样

ios - 如何在 iOS 上锁定其他应用程序

iOS - 位置服务箭头 - 它有字形吗?

c# - 在 ASP.NET Web 窗体应用程序中本地化 JavaScript 字符串

docker 上的 PHP : Using setLocale