首页 > 解决方案 > 将 NSDateComponents 分配给标签

问题描述

我正在创建一个具有特定日期倒计时的移动应用程序。我认为我的计时器本身是正确的,但是我正在努力将其转换为可以将其分配给我的标签的格式。我收到一个错误“无法使用类型为'(NSDateComponents)'的参数列表调用类型'String'的初始化程序。此错误在“var date = String(openingGavelDate)”行中找到。标签的出口有已在此文件中正确创建。

我采取的第一步是创建日期变量并将其设置为等于我的另一个变量的转换值。第二步涉及尝试查看文档,但到目前为止,我还没有真正找到任何可以提供帮助的实质性文档。

func createGavelTimer() {
    let openingGavelDate = NSDateComponents()
    openingGavelDate.year = 2019
    openingGavelDate.month = 7
    openingGavelDate.day = 16
    openingGavelDate.hour = 14
    openingGavelDate.minute = 00
    openingGavelDate.timeZone = NSTimeZone(abbreviation: "CST")! as TimeZone
    var date = String(openingGavelDate) //problem is here
    countdownLabel.text = date
}

标签: swift

解决方案


可能的解决方案之一:

let date = Calendar.current.date(from: openingGavelDate)

let dateFormatter = DateFormatter()
    dateFormatter.timeStyle = .short
    dateFormatter.dateStyle = .medium
    dateFormatter.doesRelativeDateFormatting = true
    dateFormatter.timeZone = TimeZone(abbreviation: "CST")!


    let yourString = dateFormatter.string(from: date)

推荐阅读