不同格式的swift时间转换

不同格式的swift时间转换,swift,nsdateformatter,Swift,Nsdateformatter,我想将时间字符串从15:00:00 AM转换为03:00 PM,这就是我试图实现的结果 var str = "15:00:00 AM" // "15:00:00 AM" let df = DateFormatter() df.timeZone = TimeZone.current df.dateFormat = "HH:mm:ss a" // "Jan 1, 2000, 12:00 AM" let date = df.date(from: str) let df

我想将时间字符串从15:00:00 AM转换为03:00 PM,这就是我试图实现的结果

var str  = "15:00:00 AM"          //  "15:00:00 AM" 

let df = DateFormatter()
df.timeZone = TimeZone.current
df.dateFormat = "HH:mm:ss a"    // "Jan 1, 2000, 12:00 AM"
let date = df.date(from: str)

let df1 = DateFormatter()
df1.dateFormat = "hh:mm a"
str = df1.string(from: date!)   // "12:00 AM"
不确定我错过了什么尝试了不同的方法,但我仍然不能正确地转换时间


PS:更多的答案,我正在检查转换的可能性,因为我得到的时间字符串来自服务器端,我可以更新它们以便更正

早上好,请尝试此代码

let now = NSDate()
let df = DateFormatter()
df.dateFormat = "hh:mm a"
let result = df.string(from: now as Date)

上午15:00:00怎么可能是上午???您是否可以通过上午和下午获得24小时格式的日期?只有15:00:00。删除15:00:00 AM中的AM。@NiravD是的,这是我从服务器端得到的,只是想确保它不能转换为我想要的格式。@mangesh您得到的日期的格式不正确,因此您可以通过从字符串中删除最后一个AM或PM来纠正它。