无法将 'NSDate' 类型的值分配给类型 'String?' 的值



我正在自学swift,我还是很新的,但我决定做一个简单的应用程序,当你按下一个按钮时打印当前时间。视图控制器文件中的代码如下所示:

import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    @IBOutlet weak var LblTime: UILabel!
    @IBAction func BtnCalltime(sender: AnyObject) {
            var time = NSDate()
            var formatter = NSDateFormatter()
            formatter.dateFormat = "dd-MM"
            var formatteddate = formatter.stringFromDate(time)
            LblTime.text = time
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

我有一个问题与线:

LblTime.text = time

我一直得到错误:

不能将类型为'NSDate'的值分配给类型为'String '的值?'

我试过使用:

lblTime.text = time as! string?

:

lblTime.text = time as! string

但它仍然不工作,我将非常感激一些帮助。由于

您需要使用formatter中的值。

@IBAction func BtnCalltime(sender: AnyObject) {
    var time = NSDate()
    var formatter = NSDateFormatter()
    formatter.dateFormat = "dd-MM"
    var formatteddate = formatter.stringFromDate(time)
    LblTime.text = formatteddate
}

你已经从NSDate中创建了字符串,你只是没有使用它。

lblTime.text = formatteddate

Date现在优于NSDate。它是一个覆盖类,意味着两者都可以工作,但是Date有很多优点,这个答案列出了其中的一些。

下面是如何使用date而不是NSDate将日期格式化为字符串。

var time = Date()
var formatter = DateFormatter()
formatter.dateFormat = "MMM d yyyy, h:mm:ss a"
let formattedDateInString = formatter.string(from: time)
dateLabel.text = formattedDateInString

一个获取格式化器字符串的好网站是http://nsdateformatter.com/我不知道"MMM d yyyy, h:mm:ss a"等于Mar 1, 7:02:35 AM,但是这个位置让它变得简单。

相关内容

最新更新