我的问题是有我的应用程序开关,该开关切换12小时和24小时的时间format.I我根据这显示我的标签时间,但UIDatePicker
changed.It的时间取决于设备的时间设置格式的时间没有得到。是否可以显示时间UIDatePicker
根据这可能是从设备的时间设置不同的我的应用程序设置。 某处,我读了的UIDatePicker只有尊重设备设置但我仍然要问,如果有可能在显示时间在12和24小时制UIDatePicker
根据我的应用程序设置。
请帮我。 任何建议,将不胜感激!
我的问题是有我的应用程序开关,该开关切换12小时和24小时的时间format.I我根据这显示我的标签时间,但UIDatePicker
changed.It的时间取决于设备的时间设置格式的时间没有得到。是否可以显示时间UIDatePicker
根据这可能是从设备的时间设置不同的我的应用程序设置。 某处,我读了的UIDatePicker只有尊重设备设置但我仍然要问,如果有可能在显示时间在12和24小时制UIDatePicker
根据我的应用程序设置。
请帮我。 任何建议,将不胜感激!
对于UIDatePicker
不能更改时间格式,以24或12,这取决于在setting.app用户本地设置
试试这个代码显示:24小时格式DatePicker
:
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"NL"];
[self.datePicker setLocale:locale];
在斯威夫特
// myDatePicker is yourUIDatePicker Outlet
@IBOutlet weak var myDatePicker: UIDatePicker!
// For 24 Hrs
myDatePicker.locale = NSLocale(localeIdentifier: "en_GB") as Locale
//For 12 Hrs
timePickerView.locale = NSLocale(localeIdentifier: "en_US") as Locale
斯威夫特4版ak2g的回答:
// myDatePicker is yourUIDatePicker Outlet
@IBOutlet weak var myDatePicker: UIDatePicker!
// For 24 Hrs
myDatePicker.locale = Locale(identifier: "en_GB")
//For 12 Hrs
myDatePicker.locale = Locale(identifier: "en_US")
有没有需要规范的任何单行。 我们可以从故事板设置的语言环境还可以,我已附上截图。
而要做到这一点编程,我们也可以写下面的代码。
dateTimePicker.locale = Locale(identifier: "en_GB")
我发现了一个更简单的方法,点击的UIDatePicker的故事板属性检查器和区域设置为“英语(欧洲)”。 这带走了AM / PM切换,将其设定到24小时格式。
设置你的UIDatePicker有区域属性,因此它不会默认为用户的语言环境。
这里是文档这样做,并确保设置的国家,而不是语言 。
编辑:其实,它看起来像语言环境中的iOS 5.0贬值。 我想苹果认为人们不应该将其覆盖。
轻松格式化结果,而不是
由于该设备的本地都没有24小时。 在12小时格式选择时间没有问题。 当你试图同时提交到服务器主要发生这个问题。 而服务器请求它在24小时格式。
然而,对于用户是用户更容易二手12H格式,而24小时格式。 但服务器通常需要的时间要在24小时格式。
既然你提到
不上设备的设置
我只能假设你正在试图做到这一点,而不在电话中断用户默认设置。 但是,如果你的问题是这样的观点,然后
myDatePicker.locale = NSLocale(localeIdentifier: "en_GB")
为做到这一点的唯一途径。
我所做的是在24小时格式不显示,但结果值转换为24小时格式。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
print("\(pickerView.date)") // 10:30 PM
let dateSelect = dateFormatter.string(from: pickerView.date)//pickerView = to your UIDatePicker()
self.tfclosing.text = dateSelect // 22:30
如果我理解正确的话,你需要找出设备的设置是否有12个小时或24个小时格式。 很抱歉,如果这个解决方案是有点晚了。
-(BOOL)returnDefaultDateFormat
{
NSString *formatStringForHours = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 locale:[NSLocale currentLocale]];
NSRange containsA = [formatStringForHours rangeOfString:@"a"];
BOOL hasAMPM = containsA.location != NSNotFound;
return hasAMPM;
}