1

我已经插入了一个计时器,所以时间会根据系统时钟而变化。问题是,它在没有上午/下午的情况下以数字显示(12:33)。请指导我解决这个问题。

这是我用来显示文本的代码。

@State var endTime = Date()
var body: some View {
Text("Ends - \(myViewModel.timeString(date: endTime))")
 .onAppear(perform: {let _ = self.updatedEndTime})
}

这是我用来根据系统时间更新计时器的代码。

var updateEndTime: Timer {
    Timer.scheduledTimer(withTimeInterval: 0, repeats: true,
       block: {_ in
        self.endTime = Date() + myViewModel.player.duration - myViewModel.player.currentTime
          })
    }

我的视图模型代码

var timeFormat: DateFormatter {
    let formatter = DateFormatter()
    formatter.dateFormat = "hh:mm"
    return formatter
}

func timeString(date: Date) -> String {
     let time = timeFormat.string(from: date)
     return time
}
4

1 回答 1

0

您可以设置amSymbolpmSymbol使用符号DateFormattera打印它。

lazy var timeFormat: DateFormatter {
        let formatter = DateFormatter()
        formatter.dateFormat = "h:mm a"
        formatter.amSymbol = "AM"
        formatter.pmSymbol = "PM"
        return formatter
}()

在我的语言环境(美国)中,即使没有设置amSymboland pmSymbol,它们也会显示为“AM”/“PM”,但我不确定在所有语言环境中都是如此。

于 2021-02-11T07:36:45.983 回答