使用DateFormatter显示本地时区缩写

时间:2019-12-12 13:33:38

标签: ios swift

我有一个DateFormatter,它以"2:00pmThu 18 Oct"格式输出日期:

static func scheduleFormatter() -> DateFormatter {
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.amSymbol = "am"
    dateFormatter.pmSymbol = "pm"
    dateFormatter.dateFormat = "h:mma, EE dd MMM"
    return dateFormatter
}

我需要在本地时区添加用户的缩写,以便字符串看起来像"2:00 pm GMTThu 18 Oct"。我该怎么办?

3 个答案:

答案 0 :(得分:0)

看看Unicode Date Formatting Patterns

可能您想要模式v

  

简短的通用非位置格式。如果无法使用,请回退到通用位置格式(“ VVVV”),然后将简短的本地化GMT格式作为最后的回退。

z

  

简短的特定非位置格式。如果无法使用,请退回为本地化的简短GMT格式(“ O”)。

请注意,时区名称已与语言连接,并且设置posix语言环境可能会破坏这种情况。

您也可以直接要求缩写,并将其明确包含在您的格式中:

"h:mma, '\(TimeZone.current.abbreviation() ?? "")' EE dd MMM"

答案 1 :(得分:0)

要显示时区,您只需在dateFormat字符串中添加“ zzz”。例如:“ h:mma zzz,EE dd MMM”

答案 2 :(得分:-1)

公共静态日期getCurrentTimeStampDate(){

String currentDate = new SimpleDateFormat(""yyyy:MM:dd HH:mm:ss").format(Calendar.getInstance(TimeZone.getTimeZone("GMT")).getTime());  
    SimpleDateFormat formater = new SimpleDateFormat(""yyyy:MM:dd HH:mm:ss");

    try {
        return formater.parse(currentDate);
    } catch (ParseException e) {


        return null;  
    }
}
相关问题