如何在swift/IOS中将am/pm符号转换为当前本地化

如何在swift/IOS中将am/pm符号转换为当前本地化,ios,swift,date,nsdateformatter,Ios,Swift,Date,Nsdateformatter,我需要将am/pm符号格式转换为相应的语言环境。下面是代码片段 let formatter = DateFormatter() formatter.dateFormat = "h:mm aa" formatter.timeZone = TimeZone(abbreviation: "UTC") return formatter 甚至我也试着把代码改成他的,但都没成功 let formatter = DateFormatter() let locale =

我需要将am/pm符号格式转换为相应的语言环境。下面是代码片段

let formatter = DateFormatter()
formatter.dateFormat = "h:mm aa"
formatter.timeZone = TimeZone(abbreviation: "UTC")
return formatter
甚至我也试着把代码改成他的,但都没成功

let formatter = DateFormatter()
let locale = Locale.autoupdatingCurrent
formatter.locale = locale
以及使用区域设置标识符

let locale = Locale(identifier: "de-DE")
formatter.locale = locale

但是运气不好,请提前提供有价值的信息并表示感谢。

不清楚您想做什么。您定义了一个DateFormatter,它将
Date
对象转换为包含AM/PM的时间字符串,或从中转换为包含AM/PM的时间字符串。如果要获取包含带有AM/PM后缀的时间的日期字符串并将其转换为24小时时间,则需要两个独立的
DateFormatter
s,或者需要在转换之间更改其格式字符串

考虑以下代码:

import Cocoa

let  formatterWithAmPM: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "MM/dd/yyyy h:mm aa"
    formatter.timeZone = TimeZone(abbreviation: "UTC")
    return formatter
}()

let formatterWith24HourTime: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "MM/dd/yyyy HH:mm"
    formatter.timeZone = TimeZone(abbreviation: "UTC")
    return formatter
}()


let startingDateString = "06/15/2021 02:26 PM"
if let date = formatterWithAmPM.date(from: startingDateString) {
    print("Date string '\(startingDateString) in 24 hour time = '\(formatterWith24HourTime.string(from:date))'")
}
这将产生:

Date string '06/15/2021 02:26 PM in 24 hour time = '06/15/2021 14:26'

(我在日期格式中添加了月/日/年,以便指定完整的日期和时间。没有日期的时间是不完整的。)

不清楚您想要实现什么。能否添加一个带有输入和预期结果的示例?将am和pm转换为各自的语言环境。例如,德语中的晚上7:30到7.30 Uhr