I'm trying to display a list of different times that could have different time zones. I have created a Model that includes an ID = UUID(), name: String, time: Date, and localTimeZone: TimeZone.
Ideally, I'd like to either create a new or change the timezone of an existing dateformatter for every item in the list. Here is the framework of code I am trying to get working:
Thank you, I appreicate any tips and suggestions.
import SwiftUI
struct ExampleModel: Identifiable {
var id = UUID()
var name: String
var date: Date
var localTimeZone: TimeZone
}
let sampleData = [
ExampleModel(name: "Name 1", date: dateFormatter.date(from: "02:00L")!, localTimeZone: TimeZone(abbreviation: "PST")!),
ExampleModel(name: "Name 2", date: dateFormatter.date(from: "05:17L")!, localTimeZone: TimeZone(abbreviation: "EST")!),
ExampleModel(name: "Name 3", date: dateFormatter.date(from: "18:33L")!, localTimeZone: TimeZone(abbreviation: "GMT")!)
]
let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "HH':'mm'L'"
formatter.timeZone = TimeZone(secondsFromGMT: 0)
return formatter
}()
struct DateFormatterTest: View {
var exampleData: [ExampleModel]
var body: some View {
List(sampleData) { item in
HStack {
Text(item.name)
//dateFormatter.timeZone = item.localTimeZone------------//
Text(dateFormatter.string(from: item.date)) //Display this in local time.
}
}
}
}
struct DateFormatterTest_Previews: PreviewProvider {
static var previews: some View {
DateFormatterTest(exampleData: sampleData)
}
}
Thanks again, Jacob