我有一个日期格式化程序,它以"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"
.我该怎么做?
查看 Unicode 日期格式模式:
可能你想要模式v
:
简短的通用非位置格式。如果不可用,则回退到通用位置格式("VVVV"(,然后回退到简短的本地化 GMT 格式作为最终回退。
或z
:
简短的特定非位置格式。如果不可用,则回退到简短的本地化 GMT 格式 ("O"(。
请注意,时区名称与语言相关,设置posix
区域设置可能会破坏它。
您也可以直接要求提供缩写,并将其明确包含在您的格式中:
"h:mma, '(TimeZone.current.abbreviation() ?? "")' EE dd MMM"
要显示时区,您只需在 dateFormat 字符串中添加 "zzz" 即可。例如:"h:mma zzz, EE dd MMM">
public static Date 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;
}
}