用法语写时间

Put the time in French

我尝试在用 Swift 3 编写的 iOS 应用程序中格式化法语时间 这里的数据字符串

2000-01-01T14:00:00.000Z

这里方法swift3

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:00 p.m.

我用过:dateFormatter.locale = Locale (identifier: "fr_FR") 但它在那里不起作用还有其他操作吗?

您需要修正这两种日期格式:

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 转换为字符串。相反,设置 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!);
}

在任何一种情况下,仅当您希望所有用户都看到以该特定语言环境格式化的时间时才设置语言环境(这种情况很少见)。