chi*_*hah 14 iphone objective-c nsdateformatter date-formatting ios
我在ios中使用以下代码获取系统时间格式.当我目前的地区设置为"United State"时它工作正常,但是当我将该地区从"United State"改为"United Kingdom"时,它总是给出12小时的合成.
#pragma mark
#pragma mark - get system time
-(BOOL)getSystemTimeFormat
{
NSString *strDateFormate = @"hh a";
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:strDateFormate options:0 locale:[NSLocale currentLocale]];
if ([dateFormat rangeOfString:@"h"].location != NSNotFound)
{
[kNSUserDefaults setBool:YES forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return YES;
}
else
{
[kNSUserDefaults setBool:NO forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return NO;
}
}
Run Code Online (Sandbox Code Playgroud)
"美国"地区的日志::
2015-01-27 11:32:16.090 [350:60b] 12 Formate :: 0
2015-01-27 11:32:16.585 [350:60b] Connect
2015-01-27 11:32:16.591 [350:60b ]位置更新...
2015-01-27 11:32:16.604 [350:60b]位置更新...
2015-01-27 11:32:16.622 [350:60b]位置更新...
"英国"地区的日志::
2015-01-27 11:33:35.785 [364:60b] 12 Formate :: 1
2015-01-27 11:33:36.777 [364:60b] Connect
2015-01-27 11:33:36.780 [364:60b ]位置更新...
2015-01-27 11:33:36.806 [364:60b]位置更新...
2015-01-27 11:33:36.832 [364:60b]位置更新...
经过这个主题的大量研发,我终于找到了解决这个问题的方法.
这使用名为"j"的特殊日期模板字符串.根据ICU规范,"j"......
请求区域设置(h,H,K或k)的首选小时格式,由h,H,K或k是否以区域设置的标准短时间格式使用来确定.在这种API的实现中,在开始与availableFormats数据匹配之前,'j'必须被h,H,K或k替换.请注意,在传递给API的框架中使用"j"是使框架请求区域设置的首选时间周期类型(12小时或24小时)的唯一方法.最后一句很重要.它"是骨架请求区域设置首选时间周期类型的唯一方法".由于NSDateFormatter和NSCalendar构建在ICU库上,因此这同样适用.
所以我在我的代码中更改了模板值
#pragma mark
#pragma mark - get system time
-(BOOL)getSystemTimeFormat
{
NSString *strDateFormate = @"j";
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:strDateFormate options:0 locale:[NSLocale currentLocale]];
if ([dateFormat rangeOfString:@"a"].location != NSNotFound)
{
[kNSUserDefaults setBool:YES forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return YES;
}
else
{
[kNSUserDefaults setBool:NO forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return NO;
}
}
Run Code Online (Sandbox Code Playgroud)
我从以下链接中找到了此解决方案如何确定iPhone是否设置为12小时或24小时时间显示?.
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |