Swo*_*rog 3 datetime locale ios
我想得到一个像"10:00 PM"的时间字符串,我使用NSDateFormatterShortStyle来实现这一点.但是,当系统设置为使用24小时格式时,我得到的是"22:00".
此外,我想获得一个本地化的时间字符串.例如,在中文中,我希望得到"下午10:00"而不是"晚上10:00".所以我必须使用[NSLocale currentLocale],并且不能使用en_US_POSIX语言环境.
请帮我获取一个本地化的12小时格式时间字符串.
我不仅需要小时部分,还需要上午/下午部分.此外,am/pm部分可能位于小时/分钟部分之前或小时/分钟部分之后,具体取决于地区.就像系统显示时间一样.当系统设置为使用12小时格式时,它很简单.但是当系统使用24小时格式时,我无法获得本地化的12小时格式时间字符串.
Mr.*_*rna 14
那应该工作:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"hh:mm a" options:0 locale:[NSLocale currentLocale]]];
NSString *theTime = [dateFormatter stringFromDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)
这应该会得到一个日期格式化程序,它将以12小时格式给出日期.小写hh表示小时1-12格式.有关格式字符串的详细信息,请参阅日期格式模式的Unicode技术标准#35部分.
不幸的是,iOS会根据用户的24小时格式首选项设置重写格式字符串.我无法使用Cocoa的日期格式找到该设置.由于24小时格式将删除am/pm指定,解析结果字符串以转换大于12的小时将导致不明确的时间字符串.因此,我能看到的唯一剩余选项是尊重用户24小时偏好设置或使用其他本地化代码.您可以自己编写,也可以找一个开源替代品.
| 归档时间: |
|
| 查看次数: |
11984 次 |
| 最近记录: |