SwiftUI 上两个日期之间的区别
Difference between the 2 dates on 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)
我也导入了粉底
我的错误是 Initializer init(_:)
要求 DateComponents
符合 StringProtocol
。
任何帮助都会很棒。
这里有几个问题:
使用您当前的代码,当您尝试将日期字符串转换为日期时会遇到崩溃,因为它无法正确解析并且您正在使用 !
。这可以通过以不同方式格式化字符串来解决
您正在尝试将 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")")
}
}
如果经常重新渲染此组件,最好将格式化程序存储在不会每次都重新创建的地方。
我试图找出这两个日期之间的差异,但是,我不断收到错误消息。
这是我的代码:
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)
我也导入了粉底
我的错误是 Initializer init(_:)
要求 DateComponents
符合 StringProtocol
。
任何帮助都会很棒。
这里有几个问题:
使用您当前的代码,当您尝试将日期字符串转换为日期时会遇到崩溃,因为它无法正确解析并且您正在使用
!
。这可以通过以不同方式格式化字符串来解决您正在尝试将
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")")
}
}
如果经常重新渲染此组件,最好将格式化程序存储在不会每次都重新创建的地方。