Hey it took me days to figure it out, but the way is to use a custom date formatter. See example code below
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Text(date, formatter: formatter)
}
.padding()
}
var date: Date {
Date().addingTimeInterval(20*60)
}
var formatter: RelativeMinutesDateFormatter {
RelativeMinutesDateFormatter()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
class RelativeMinutesDateFormatter : Formatter {
open override func string(for obj: Any?) -> String? {
guard let date = obj as? Date else {
return nil
}
let minutes = Int(date.timeIntervalSince(.now) / 60)
return "\(minutes)m"
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: