如何在 NSDate 中附加 UTC
How to get UTC appended in NSDate
所以目前我有 Formatter 的这个扩展 returns : 16/10/17 08:37:50 PM GMT 但我需要 16/10/17 08:37:50 PM UTC 将 UTC 附加到 nsdate。我怎样才能做到这一点?
以下是我的代码:
extension Formatter {
static let iso8601: DateFormatter = {
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = NSTimeZone(abbreviation:"UTC") as TimeZone!
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"
formatter.dateFormat = "dd/MM/yy hh:mm:ss a zzz"
return formatter
}()
}
我在这里更改当前日期以保存相同的时间和日期,但仅更改时区。试试这是否适合你
var now: Date {
let formatter = DateFormatter()
formatter.dateFormat = Const.dateFormat
formatter.timeZone = TimeZone.current
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .iso8601)
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss a zzz"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let str = dateFormatter.string(from: date)
return formatter.date(from: str)
}
只需将您的日期格式化程序更改为使用 'UTC'
代替格式字符串中的 zzz
:
formatter.dateFormat = "dd/MM/yy hh:mm:ss a 'UTC'"
您需要将 UTC
之类的字符串文字放在单引号中,这样它们就不会被解释为格式字符。
请注意,如果您将日期格式设置为 UTC 时区,以上 只有 才能正常工作。如果您将其设置为其他时区,则输出字符串仍将以 UTC
结尾,这将是错误的。
所以目前我有 Formatter 的这个扩展 returns : 16/10/17 08:37:50 PM GMT 但我需要 16/10/17 08:37:50 PM UTC 将 UTC 附加到 nsdate。我怎样才能做到这一点?
以下是我的代码:
extension Formatter {
static let iso8601: DateFormatter = {
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = NSTimeZone(abbreviation:"UTC") as TimeZone!
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"
formatter.dateFormat = "dd/MM/yy hh:mm:ss a zzz"
return formatter
}()
}
我在这里更改当前日期以保存相同的时间和日期,但仅更改时区。试试这是否适合你
var now: Date {
let formatter = DateFormatter()
formatter.dateFormat = Const.dateFormat
formatter.timeZone = TimeZone.current
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .iso8601)
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss a zzz"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let str = dateFormatter.string(from: date)
return formatter.date(from: str)
}
只需将您的日期格式化程序更改为使用 'UTC'
代替格式字符串中的 zzz
:
formatter.dateFormat = "dd/MM/yy hh:mm:ss a 'UTC'"
您需要将 UTC
之类的字符串文字放在单引号中,这样它们就不会被解释为格式字符。
请注意,如果您将日期格式设置为 UTC 时区,以上 只有 才能正常工作。如果您将其设置为其他时区,则输出字符串仍将以 UTC
结尾,这将是错误的。