将 Z 格式的服务器日期转换为本地 nsdate
Converting server date with Z format to local nsdate
我需要将此服务器日期(来自 kinvey 请求)转换为本地时区。
我正在使用以下代码:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ss.sTZD"
print(dateFormatter.dateFromString(newValue))
日期格式是这样的:
ect = "2016-08-28T16:30:06.553Z" or
lmt = "2016-08-28T16:30:06.553Z"
当我打印日期时它是零,你知道我做错了什么吗?。我认为这可能是 dateFormat
的结尾
如果您的应用只能定位 iOS7+,您可以使用以下格式符号:
Fixed Formats (in Data Formatting Guide)
Unicode 技术标准 #35 version tr35-31
second | S | 1..n | 3456 | Fractional Second - truncates (like other
time fields) to the count of letters. (example shows display using
pattern SSSS for seconds value 12.34567)
zone | X | 1 | -08,+0530,Z | The
ISO8601 basic format with hours field and optional minutes field. The
ISO8601 UTC indicator "Z" is used when local time offset is 0. (The
same as x, plus "Z".)
因此,要解析小数秒,请使用大写 'S'、
和 'X' 用于时区,包括作为 UTC 的“Z”。
试试这个:
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSX"
(我转义了'T',因为它可能在将来用作另一个时间格式符号。)
PS。虽然我找不到描述将“Z”解释为 UTC+0000 的日期格式的线程,但如果满足某些条件,忽略或删除它可能不是一个糟糕的解决方案。请找到您的最佳解决方案。
我需要将此服务器日期(来自 kinvey 请求)转换为本地时区。
我正在使用以下代码:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ss.sTZD"
print(dateFormatter.dateFromString(newValue))
日期格式是这样的:
ect = "2016-08-28T16:30:06.553Z" or lmt = "2016-08-28T16:30:06.553Z"
当我打印日期时它是零,你知道我做错了什么吗?。我认为这可能是 dateFormat
的结尾如果您的应用只能定位 iOS7+,您可以使用以下格式符号:
Fixed Formats (in Data Formatting Guide)
Unicode 技术标准 #35 version tr35-31
second | S | 1..n | 3456 | Fractional Second - truncates (like other time fields) to the count of letters. (example shows display using pattern SSSS for seconds value 12.34567)
zone | X | 1 | -08,+0530,Z | The ISO8601 basic format with hours field and optional minutes field. The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as x, plus "Z".)
因此,要解析小数秒,请使用大写 'S'、
和 'X' 用于时区,包括作为 UTC 的“Z”。
试试这个:
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSX"
(我转义了'T',因为它可能在将来用作另一个时间格式符号。)
PS。虽然我找不到描述将“Z”解释为 UTC+0000 的日期格式的线程,但如果满足某些条件,忽略或删除它可能不是一个糟糕的解决方案。请找到您的最佳解决方案。