我有一个DateFormatter,它以"2:00pm
,Thu 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 GMT
,Thu 18 Oct"
。我该怎么办?
答案 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;
}
}