显示在12时和24小时格式的UIDatePicker的不是设备设置应用程序设置的基础上,(Show

2019-06-25 16:25发布

我的问题是有我的应用程序开关,该开关切换12小时和24小时的时间format.I我根据这显示我的标签时间,但UIDatePicker changed.It的时间取决于设备的时间设置格式的时间没有得到。是否可以显示时间UIDatePicker根据这可能是从设备的时间设置不同的我的应用程序设置。 某处,我读了的UIDatePicker只有尊重设备设置但我仍然要问,如果有可能在显示时间在12和24小时制UIDatePicker根据我的应用程序设置。

请帮我。 任何建议,将不胜感激!

Answer 1:

对于UIDatePicker不能更改时间格式,以24或12,这取决于在setting.app用户本地设置



Answer 2:

试试这个代码显示:24小时格式DatePicker

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"NL"];
[self.datePicker setLocale:locale];


Answer 3:

在斯威夫特

    // 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


Answer 4:

斯威夫特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")


Answer 5:

有没有需要规范的任何单行。 我们可以从故事板设置的语言环境还可以,我已附上截图。

而要做到这一点编程,我们也可以写下面的代码。

dateTimePicker.locale = Locale(identifier: "en_GB")


Answer 6:

我发现了一个更简单的方法,点击的UIDatePicker的故事板属性检查器和区域设置为“英语(欧洲)”。 这带走了AM / PM切换,将其设定到24小时格式。



Answer 7:

设置你的UIDatePicker有区域属性,因此它不会默认为用户的语言环境。

这里是文档这样做,并确保设置的国家,而不是语言 。

编辑:其实,它看起来像语言环境中的iOS 5.0贬值。 我想苹果认为人们不应该将其覆盖。



Answer 8:

轻松格式化结果,而不是

由于该设备的本地都没有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


Answer 9:

如果我理解正确的话,你需要找出设备的设置是否有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;
}


文章来源: Show Time in 12 and 24 hour format in UIDatepicker on the basis of app settings not on device Settings