機能する日付差機能を取得できません。 NSDate
は暗黙的に '日付'に変換可能ではありませんが、この問題を直ちに回避することはできません。 as Date
を使用しても動作しません。2つの日付の違いを取得する - スウィフト
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var dateLabelOutlet: UILabel!
let currentDate = NSDate()
let dateFormatter = DateFormatter()
let userCalendar = NSCalendar.current
let requestedComponent: NSCalendar.Unit = [
NSCalendar.Unit.month,
NSCalendar.Unit.day,
NSCalendar.Unit.hour,
NSCalendar.Unit.minute,
NSCalendar.Unit.second,
]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func printTime(){
dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss a"
let startTime = NSDate()
let endTime = dateFormatter.date(from: "25/12/16 00:00:00")
let timeDifference = userCalendar.components(requestedComponent, from: startTime, to: endTime!, options: [])
dateLabelOutlet.text = "\(timeDifference.month) Months \(timeDifference.day) Days \(timeDifference.minute) Minutes \(timeDifference.second) Seconds"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
「NSDate」を「Date」に置き換えることはできません。それらは非常によく似ています。日付の違いを得る方法を教えてくれるたくさんの質問があります – Nik
DIY形式の文字列の代わりにISO-8601の日付形式を使用することを強くお勧めします。 – alekop