我有一个用户可以更改的时间选择器,我需要将他们选择的时间转换回美国格式。我目前正在尝试使用 DateFormatter,以便我可以轻松地将其从一种日期格式转换为我可以轻松使用的另一种日期格式。
这是我一直在尝试使用的代码,但它不起作用:
let time = "上午11:42" //11:42 AM
let timeFormatter = DateFormatter()
timeFormatter.locale = Locale(identifier: "en_US_POSIX")
timeFormatter.timeStyle = .short
timeFormatter.dateStyle = .none
timeFormatter.isLenient = true
timeFormatter.date(from: time) //returns nil
时间格式应该非常动态,因为用户可以将其语言更改为 iOS 设备支持的任何语言。
最佳答案
简单地说,解析器必须使用用于生成该字符串的区域设置。
但是,解析本地化字符串是一种反模式。如果用户使用选择器输入日期,您应该使用该选择器中的日期。您不应该将其格式化为字符串然后解析它。
这引入了很多复杂性(包括时区、夏令时更改等)。
关于ios - 如何将另一个语言环境中的时间解析为美国语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44441514/