SwiftUI上两个日期之间的差异



我正在尝试获取两个日期之间的差异,但是,我一直收到一条错误消息。

这是我的代码:

let fmt = ISO8601DateFormatter()

let date1 = fmt.date(from: "2017-08-06")!
let date2 = fmt.date(from: "2020-08-06")!
let diffs = Calendar.current.dateComponents([.day], from: date1, to: date2)

Text(diffs)

我还进口了粉底。

我的错误是初始化程序init(_:)要求DateComponents符合StringProtocol

任何帮助都会很棒。

这里有几个问题:

  1. 使用当前代码,在尝试将日期字符串转换为日期时会遇到崩溃,因为它无法正确解析,并且您使用的是!。这可以通过不同格式的字符串来解决

  2. 您正试图将DateComponents传递给Text,这需要一个符合StringProtocol的输入(正如错误所说(,而DateComponents没有。您可以使用DateComponentsFormatter转换为String

struct ContentView: View {
private let fmt = ISO8601DateFormatter()
private let formatter = DateComponentsFormatter()

var diffs : DateComponents {
guard let date1 = fmt.date(from: "2017-08-06T00:00:00Z"),
let date2 = fmt.date(from: "2020-08-06T00:00:00Z") else {
return DateComponents()
}
return Calendar.current.dateComponents([.day], from: date1, to: date2)
}

var body: some View {
Text("(formatter.string(from: diffs) ?? "unknown")")
}
}

如果经常重新呈现这个组件,那么最好将格式化程序存储在某个地方,这样每次都不会重新创建它们。

相关内容

  • 没有找到相关文章

最新更新