把时间用法语

时间:2016-09-30 20:22:59

标签: ios nsdateformatter swift3

我尝试使用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") 但是它没有工作那里有另外的操作吗?

1 个答案:

答案 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!);
}

更好的是,不要使用dateFormatDate转换为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!);
}

在任何一种情况下,如果您希望所有用户都能看到在该特定区域设置中格式化的时间,那么只需设置区域设置(这种情况很少见)。