iOS nsdateformatter AM/PM issue

requirement很简单,需要显示的时间格式满足:

* 用AM/PM表示,而不是24小时制

* 如果小时数是单位数,则不加0,例如16:30:00,应该显示 "4:30:00 PM",而不是"04:30:00"

对于下面这段代码

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"h:mm:ss a"];
    NSLog([dateFormatter stringFromDate:[NSDate date]]);

我本以为可以满足我要求,但是在AIMS app里,却发现如下问题:

1. 如果我在iphone里的设置> 一般> 日期与时间 中 enable 24小时制,那么上面代码对于16:30:00是显示“16:30:00”,而不是"4:30:00 PM"

2. 即使我disable 24小时制,由于我的语言设置是中文,那么上面代码对于16:30:00是显示“4:30:00 下午”,而不是"4:30:00 PM"


找到的解决方案是:对NSDateFormatter实例的locale属性进行设置,使得它强制采用“en-US”的方式

dateFormatter.locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"];
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值