不计算秒

时间:2017-03-06 21:05:16

标签: swift time uidatepicker

我有UIDatePicker的模式时间。日期选择器可让您选择一小时和分钟。我需要它来记住小时和分钟而不是秒。

当应用程序运行时,日期选择器将花费用户选择的小时和分钟,并添加从您所记录的时间到记忆时间的秒数。

我从UIDatePIcker选择下午2:00的一个例子,这就是我得到的:

2017-03-07 02:00:36 +0000

但是我想要将秒数设置为00或者像这样删除它们:

2017-03-07 02:00 +0000
2017-03-07 02:00:00 +0000

这是我的代码:

@IBOutlet var datePicker: UIDatePicker!
@IBAction func datePickerchanged(_ sender: Any) {
    setDateAndTime()
    Check()

    let clockString: String = formatADate()

    if str == clockString{
        takePhoto = true
    }
}

func setDateAndTime() {

    timercount = Timer.scheduledTimer(timeInterval: 0, target: self, selector: #selector(Check), userInfo: nil, repeats: true)
    let formatter = DateFormatter()
    formatter.dateFormat = "hh:mm"
    _ = formatter.string(from: datePicker.date)
    str = dateFormatter.string(from: (datePicker?.date)!)
    RunLoop.main.add(timercount, forMode: RunLoopMode.commonModes)
    print("setdate ran")
    Check()
}

func formatADate() -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .short
    dateFormatter.dateFormat = "hh:mm"
    let date = NSDate()
    let output = dateFormatter.string(from: date as Date)
    print(output)
    return output
}
func Check(){

    let nowdate = NSDate()
    let date2 = datePicker?.date
    let elapsed = date2?.timeIntervalSince(nowdate as Date)

    print(str)
    print(Date())
    print(datePicker.date)

    if Int(elapsed!) == 0{
        takePhoto = true
    }

请帮忙

1 个答案:

答案 0 :(得分:1)

要修改Date,我更喜欢使用https://github.com/MatthewYork/DateTools

let dateWithZeroSeconds = Date(year:datePicker.date.year, month:datePicker.date.month, day:datePicker.date.day, hour:datePicker.date.hour, minute:datePicker.date.minute, second:0)

您也可以使用DateComponents进行类似的转换,但DateTools是一个非常好的包装器。