将ISO-8601日期字符串重新格式化为我自己的格式

时间:2014-08-15 13:17:27

标签: ios cocoa-touch formatting nsdateformatter

我有这个日期字符串 - "2011-07-04T00:00:00",我想将日期显示为"July 7, 2011"

这是我用来将日期字符串转换为格式化日期字符串的代码 -

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS"];
NSDate *date = [f dateFromString:@"2011-07-04T00:00:00"];
[formatter setDateStyle:NSDateFormatterLongStyle];
NSString* formattedDate = [formatter stringFromDate: date];

这是最好的方式吗?

1 个答案:

答案 0 :(得分:2)

最好将系统格式用于日期以防止本地化问题。

不同的国家和地区对格式化数字和基于时间的信息有不同的约定。区域设置提供有关当前用户使用的格式的信息,在编写处理面向用户的数据类型的代码时必须考虑这些信息。用户通过在iOS设备上的“设置”和Mac上的“系统偏好设置”中选择区域来设置区域设置。用户还可以在应用程序运行时更改区域设置。因此,如果您操作代码中的数据对象然后将其呈现给用户,请使用区域设置API正确格式化数据。

https://developer.apple.com/library/prerelease/ios/documentation/MacOSX/Conceptual/BPInternational/InternationalizingLocaleData/InternationalizingLocaleData.html