我正在快速教自己,我仍然很新但我决定制作一个简单的应用程序,按下按钮打印当前时间。 viewcontroller文件中的代码如下:
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
但它仍然不起作用,我会非常感谢一些帮助。 感谢
答案 0 :(得分:7)
您需要使用格式化程序中的值。
@IBAction func BtnCalltime(sender: AnyObject) {
var time = NSDate()
var formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM"
var formatteddate = formatter.stringFromDate(time)
LblTime.text = formatteddate
}
答案 1 :(得分:3)
你已经从NSDate创建了字符串,你只是没有使用它。
lblTime.text = formatteddate
答案 2 :(得分:0)
日期现在比NSDate更受欢迎。它是一个叠加类,意味着它们都可以工作,但是Date但有许多优点,this answer lists其中一些。
以下是使用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
,但网站会让它变得简单。