我使用此代码显示当前时间:
let UTCDate = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd hh:mm a"
formatter.timeZone = TimeZone(identifier:"GMT")
let defaultTimeZoneStr = formatter.string(from: UTCDate)
有人可以帮我检查这个时间是否在哪个时区(例如:中央时区,东部时区)....
答案 0 :(得分:2)
除非将时间指定为带有某种时区指示符的字符串,例如" 2017-04-14 10:00:00 EDT"或" 2017-04-14 10:00:00 -0400",没有办法告诉给定时间值的时区。
Swift方式将时间存储为Date
值,仅指定2001年1月1日之前或之后的秒数,UTC,并使用最有效的日历和时区显示任何时间值对用户有意义。通常,这意味着使用时区设置,因为在大多数情况下 - 但不是所有情况 - 时区设置将与用户所在的时区匹配。
如果您想要用户当前时区设置的缩写名称,请使用:
Calendar.current.timeZone.abbreviation()! // returns "EDT" for me;
// I’m in the eastern time zone
// and on daylight saving time
或者,如果您希望按地理标识符获取时区,请使用:
Calendar.current.timeZone.identifier // returns "America/New_York" for me
或者,如果您想要时区的全名,请尝试此操作(并使用参数):
// Returns "Eastern Standard Time" for me
Calendar.current.timeZone.localizedName(for: .standard, locale: Locale.current)