![](/img/trans.png)
[英]Setting particular Interval of time for DatePicker (Minimum and Maximum Time) Swift 3
[英]Getting current time from datepicker if interval has set for datepicker in Swift
我正在使用時間間隔為30分鍾的日期選擇器。 在datePicker中,它以30的間隔正確顯示。當我從選擇器中選擇值時,我正在獲取當前時間。 我期望它應該是從選擇器中選擇的值,而不是當前時間。 我正在使用以下用Swift 4編寫的代碼。
func getTime(sender:UIDatePicker)
{
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = DateFormatter.Style.short
let endDate = (sender.date).addingTimeInterval(TimeInterval(30.0 * 60.0))
let time = dateFormatter.string(from: endDate)
print(“time”) //getting current time like 8:14 AM , expected should be 8:00 AM
}
您可以根據選擇的內容從DatePicker
獲取時間。 但是您必須自己將初始時間四舍五入到下一個間隔小時。 您可以在下面的代碼中找到幫助。
在這種方法中,我們將目標添加到
datepicker
以根據我們的選擇獲取時間,並且還獲取初始時間。
override func viewDidLoad() {
super.viewDidLoad()
let currentTime = Date()
let interval = 30
self.getInitialTime(currentTime: currentTime, interval: interval)
datePicker.addTarget(self, action: #selector(getTime(sender:)), for: .valueChanged)
}
此函數將計算四舍五入到下一個間隔時間的時間。
func getInitialTime(currentTime: Date, interval: Int) {
var components = Calendar.current.dateComponents([.minute, .hour], from: currentTime)
let minute = components.minute
let remainder = ceil(Float(minute!/interval))
let finalMinutes = Int(remainder * Float(interval)) + interval
components.setValue(finalMinutes, for: .minute)
guard let finalTime = Calendar.current.date(from: components) else { return }
self.getDate(date: finalTime)
}
在這些方法中,我們正在調用另一個將日期轉換為所需格式的函數。
@objc func getTime(sender: UIDatePicker) {
self.getDate(date: sender.date)
}
func getDate(date: Date) {
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = DateFormatter.Style.short
dateFormatter.timeZone = TimeZone.current
let time = dateFormatter.string(from: date)
print(time)
}
謝謝。
我認為這會有所幫助。
func getTime(sender:UIDatePicker)
{
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm:ss a"
var ouptputTime = dateFormatter.string(from: sender.date)
print("ouptputTime:-\(ouptputTime)")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.