【发布时间】:2009-07-22 21:09:43
【问题描述】:
我的视图中有一个 UIDatePicker。
我已将 DatePicker 设置为时间模式。
所以用户只能选择时间。
用户选择的任何时间都应该显示在文本框中..
我不知道如何显示时间值 - 由用户通过 DatePicker - 时间模式。
请帮帮我..
【问题讨论】:
标签: iphone
我的视图中有一个 UIDatePicker。
我已将 DatePicker 设置为时间模式。
所以用户只能选择时间。
用户选择的任何时间都应该显示在文本框中..
我不知道如何显示时间值 - 由用户通过 DatePicker - 时间模式。
请帮帮我..
【问题讨论】:
标签: iphone
您需要使用NSDateFormatter 来格式化UIDatePicker 返回的NSDate。下面是一些未经测试的示例代码,假设您有一个 UILabel 作为属性“myLabel”,一个 UIDatePicker 作为属性“myDatePicker”:
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"h:mm a"];
self.myLabel.text = [outputFormatter stringFromDate:self.myDatePicker.date];
[outputFormatter release];
您需要检查Unicode Locale Data Markup Language 页面上的日期格式模式。字符串 "h:mm a" 会给你类似 "12:08 PM" 的东西,具体取决于你的语言环境。
【讨论】:
斯威夫特 4.0
// Action where you want to show time picker
{
let datePicker = UIDatePicker()
datePicker.datePickerMode = .time
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone.autoupdatingCurrent
dateFormatter.timeStyle = DateFormatter.Style.short
}
// On Action of Datepicker value change or Done Outlet
{
let date = self.datePicker.date
let strTime = safeDate.dateStringWith(strFormat: "hh:mm a")
print(strTime)
}
// Extension of Date
extension Date {
func dateStringWith(strFormat: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = Calendar.current.timeZone
dateFormatter.locale = Calendar.current.locale
dateFormatter.dateFormat = strFormat
return dateFormatter.string(from: self)
}
}
【讨论】: