我已经检查了其他问题,但没有一个对我有太大帮助。
我有以下字符串:
let dateString = "2018-04-29T21:00:00.000Z"
我已使用以下内容成功将其转换为日期:
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let convertedDate = dateFormatter.date(from: dateString)
但现在我只想要时间“hh:mm a”使用时区,例如“+ 8”。我尝试过以下方式,但它不起作用:
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(abbreviation: "UTC+8")
dateFormatter.dateFormat = "hh:mm a"
let requiredTime = dateFormatter.string(from: convertedDate!)
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
您想要的格式是hh:mm a Z
,它将提供+0800
。
你想创建一个距离GMT +8小时的TimeZone
,通常我更喜欢使用适当的abrivations(即AET
),但我想如果你没有,你可以使用TimeZone
创建secondsFromGMT
,例如......
let tz = TimeZone(secondsFromGMT: 8 * 60 * 60)
let toFormatter = DateFormatter()
toFormatter.timeZone = tz
toFormatter.dateFormat = "hh:mm a Z"
let requiredTime = toFormatter.string(from: convertedDate!)
根据您的示例数据,将生成值...
05:00 AM +0800