如何获取日期和时间以在UILabel中显示时钟

礼顿

我是新手(通常是编程人员),现在我正在一个项目中,我想在标签中显示时钟。

现在我的模型中有这个:

class CurrentDateAndTime {

let currentTime = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .MediumStyle)
}

然后在我的视图控制器中使用以下代码将其调用到标签中:

@IBOutlet weak var currentTimeLabel: UILabel!

let currentTime = CurrentDateAndTime()



override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    currentTimeLabel.text = currentTime.currentTime
}

问题是这不会在第二个时间间隔更新以显示实际时间。最后,我将需要在两个时间戳之间进行区别,以便我可以记录“开始时间”和“停止时间”之间的小时数。这甚至是最好/最简单的方法吗?关于我的目标的任何线索将不胜感激。

鲍勃·马扎内克(Bob Mazanec)

使用NSTimer安排在您需要的时间间隔回调-在这种情况下,

  • 呼吁tick()self每一秒
  • tick() 获取当前时间字符串并更新 UILabel

    class MyViewController {
        @IBOutlet weak var currentTimeLabel: UILabel!
    
        var timer = NSTimer()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view, typically from a nib.
    
            timer = NSTimer.scheduledTimerWithTimeInterval(1.0
                                                                target: self,
                                                              selector: #selector(tick),    
                                                              userInfo: nil, 
                                                               repeats: true)
        }
    
        @objc func tick() {
            currentTimeLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(),
                                                                            dateStyle: .MediumStyle,
                                                                            timeStyle: .MediumStyle)
        }
    }
    

Swift 4.0更新:

class MyViewController : UIViewController {
    @IBOutlet weak var currentTimeLabel: UILabel!

    var timer = Timer()

    override func viewDidLoad() {
        super.viewDidLoad()
        timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector:#selector(self.tick) , userInfo: nil, repeats: true)
    }

    @objc func tick() {
        currentTimeLabel.text = DateFormatter.localizedString(from: Date(),
                                                              dateStyle: .medium,
                                                              timeStyle: .medium)
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从日期/时间选择器对话框中获取日期和时间并显示它?

Java中的时钟独立于系统日期和时间

tkinter 中带有日期和时间的时钟挂起

如何获取日期和时间

如何获取日期和时间

如何更改顶部面板中显示的日期和时间的格式?

如何在React JS中实时显示时间和日期?

如何从SQL中的datetime列显示日期和时间

如何让KornShell在提示中显示日期和时间?

如何在WordPress中获取当前日期和时间?

如何在Android中获取当前日期和时间?

如何在C ++中获取当前时间和日期?

如何在Android中获取当前时间和日期

如何在MySQL中获取当前日期和时间?

如何从js中的时间戳数组匹配和获取日期

如何在TypeScript中获取当前日期和时间

如何在Python中获取当前位置的日期和时间

如何结合日期时间和时间来获取日期时间?

如何获取两个日期和时间之间的时差并显示时间用完

如何从值中获取开始日期时间戳和结束日期时间戳

如何在SQL中从开始日期,开始时间和完成时间获取结束日期

如何在WPF数据网格中仅显示日期而不显示日期和时间?

如果我们在python中同时获取了日期和时间,如何仅获取日期

Java:从服务器而不是系统时钟获取当前日期和时间

从 API iOS 获取时间后如何显示实时时钟时间

获取日期时间的日期和时间(MySQL中的错误?)

flutter 如何显示时间和日期

如何显示当前时间和日期设置?

如何根据时间和日期显示项目