我有一个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"。我怎么能这么做?
发布于 2019-12-12 13:36:53
可能您想要模式v
短的通用非位置格式。在不可用的地方,返回到通用位置格式("VVVV"),然后是短的本地化GMT格式作为最后的后盾。
或z
短的特定非位置格式。在不可用的情况下,返回到短的本地化GMT格式("O")。
请注意,时区名称连接到语言,设置posix区域设置可能会破坏这一点。
您也可以直接要求使用缩写,并以您的格式显式地包含它:
"h:mma, '\(TimeZone.current.abbreviation() ?? "")' EE dd MMM"发布于 2019-12-12 13:38:57
要显示时区,只需在dateFormat字符串中添加"zzz“即可。例如:"h:mma zzz,EE dd MMM“
发布于 2019-12-12 13:41:24
公共静态日期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;
}
}https://stackoverflow.com/questions/59305801
复制相似问题