我有一个日期类型为Date的表格单元格,它显示了以下错误,我不知道如何解决:
错误:无法将类型为“日期”的值分配为类型为“字符串?”
cell.Resum_Controls_Data_txt.text = control.data
control.data(类型为日期)
答案 0 :(得分:0)
Resum_Controls_Data_txt
是String
而不是Date
的类型,因此您必须使用DateFormatter
将日期转换为字符串,如下所示:
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "HH:mm E, d MMM y" //add date format whichever you want
cell.Resum_Controls_Data_txt.text = formatter.string(from: control.data)
答案 1 :(得分:0)
control.data.description
将为您提供某种形式的字符串表示形式,但可能不是您想要的。
它将简单地以通常不适合UI表示的全面形式转储各种细节。
还有
control.data.description(with: *some locale*)
但这只是相同的本地化版本。也许您想看看DateFormatter
。
反之则更加困难,因为它意味着解析日期的字符串表示形式。
在非常技术性的设置中,可以使用ISO8601
标准来表示日期和时间。这是相对常见的,具有日期,时间,日期和时间的表示形式,可以选择包括时区偏移量&c。
此外,它很容易解析。
在更传统的/面向客户的UI设置中,您可能希望在GUI中选择自定义日期控件,因此您可以在建模时简单地使用Date而无需在字符串之间进行转换,并且自定义控件负责显示和编辑日期值。