我如何在 SwiftUI 中将时间添加到选定的时间以将本地时间转换为祖鲁时间

问题描述 投票:0回答:1

是否有人可以帮助我或为我指出正确的方向,以便增加时间以从选定的时间获得祖鲁语时间,例如我有这样的和平代码:

struct datepicker: View {
    @State var startTime: Date = .now
    @State var zuluTime = ""
    var body: some View {
        VStack {
            DatePicker("_", selection: $startTime, displayedComponents: .hourAndMinute)
                .labelsHidden()
          Text(zuluTime)
        }
        .environment(\.locale, .init(identifier: "da"))
    }
}

此代码给出 24 格式的时间,但我还想显示祖鲁时间 例如,如果您的时间为 19:00,则祖鲁时间会根据您所在的时区添加或减去小时数,如果您的时间为 UTC + 5,则必须在 19:00 -> 00:00(第二天)的时间上添加 5 小时 预先感谢您的任何帮助或提示

ios swiftui datepicker xcode16
1个回答
0
投票

使用

DateFormatter
尝试此方法,例如:

struct ContentView: View {
    @State private var startTime: Date = .now
    @State private var zuluTime = ""
    
    var formatter: DateFormatter {
        let frmt = DateFormatter()
        frmt.dateFormat = "MMMM dd, yyyy 'at' hh:mm"
        frmt.locale = Locale(identifier: "da")
        frmt.timeZone = TimeZone(abbreviation: "UTC") // zulu (UTC) time
        return frmt
    }
    
    var body: some View {
        VStack {
            DatePicker("_", selection: $startTime, displayedComponents: .hourAndMinute)
                .labelsHidden()
                .datePickerStyle(.wheel)
            Text(formatter.string(from: startTime)) // zulu (UTC) time
        }
        .environment(\.locale, .init(identifier: "da"))
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.