timePicker的动作侦听器 [英] action listener for timePicker

查看:110
本文介绍了timePicker的动作侦听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个timePicker,如果用户更改textFiled上的时间字符串设置,我就将其声明为侦听器.

I have a timePicker which I have declared a listener if user change the time string sets on textFiled.

func timeFromAction(){

    DispatchQueue.main.async {

        self.timePickerFrom.datePickerMode = UIDatePickerMode.time
        //self.timePickerFrom.minimumDate = self.minDate
        print(self.minDate)
        self.timePickerFrom.date = self.minDate // current date I have achieve from millisecond to date

        self.timePickerFrom.locale = Locale(identifier: "fa_IR")
        self.timePickerFrom.calendar = Calendar(identifier: Calendar.Identifier.persian)

        self.timePickerFrom.timeZone = TimeZone(abbreviation: "IRST")

        self.timePickerFrom.frame=CGRect(x: 0, y: 0, width: 288, height: 83)

        self.timeOfLoading.addSubview(self.timePickerFrom)

        self.timePickerFrom.addTarget(self, action: #selector(self.dateChangedFrom(_:)), for: .valueChanged)

    }
}

这是侦听器功能:

func dateChangedFrom(_ sender: Any) {

    let date = self.timePickerFrom.date
    print(date)
    let components = Calendar.current.dateComponents([.hour, .minute], from: date)
    let hour = components.hour!
    let minute = components.minute!
    self.timeOfloadingLable.text = "\(hour):\(minute)"

}

所以问题是无论我是小时还是分钟,我都改变了时间.时间向前移动了1个小时.

so the problem is when I change the time no matter hour or minute.time goes 1 hour forward.

在侦听器函数中,我从timePicker获取日期,虽然我在其上设置了正确的日期,但在打印时它是错误的

in listener function I'm getting date from timePicker which when I print it it is wrong although I have set a correct date on it

更新:

self.minDate=self.crrnt.getComperehensiveDate()

这是我使用的功能:

func setComperehensiveDate(longDate:Double){

        let dbl = TimeInterval(longDate)

        let date = Date(timeIntervalSince1970: dbl / 1000)


        resultDate = date

    }

 func getComperehensiveDate()->Date{

        print("bbbbbb",resultDate!)
        return resultDate!
    }

时间是11:59,如下所示向我显示11:33

when time is 11:59 shows me 11:33 like below

观看此视频:链接

推荐答案

我刚刚检查了您的代码,它工作正常,请确保您的longDate是正确的.

I just checked your code, It's working well, Please make sure your longDate is correct.

您传递了错误的纪元时间.在此处检查您的纪元时间: https://www.epochconverter.com/

You're passing wrong epoch time. Check your epoch time here: https://www.epochconverter.com/

这篇关于timePicker的动作侦听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆