我尝试使用Swift 3编写的iOS应用程序格式化法语时间 这里是数据字符串
2000-01-01T14:00:00.000Z
这里方法swift 3
func get_time_start() -> String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "fr_FR")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let timeStart = dateFormatter.date(from: time_start)
dateFormatter.dateFormat = "hh:mm"
return dateFormatter.string(from: timeStart!);
}
在我的应用程序上给它2:00
我想在下午2点显示
我用过它:dateFormatter.locale = Locale (identifier: "fr_FR")
但是它没有工作那里有另外的操作吗?
答案 0 :(得分:0)
您需要修复这两种日期格式:
func get_time_start() -> String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "fr_FR")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let timeStart = dateFormatter.date(from: time_start)
dateFormatter.dateFormat = "hh:mm a"
return dateFormatter.string(from: timeStart!);
}
更好的是,不要使用dateFormat
将Date
转换为String。相反,请设置timeStyle
以使其格式正确,而无需强制使用特定格式。
func get_time_start() -> String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "fr_FR")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let timeStart = dateFormatter.date(from: time_start)
dateFormatter.dateFormat = nil
dateFormatter.timeStyle = .medium
dateFormatter.dateStyle = .none
return dateFormatter.string(from: timeStart!);
}
在任何一种情况下,如果您希望所有用户都能看到在该特定区域设置中格式化的时间,那么只需设置区域设置(这种情况很少见)。