我需要将此服务器日期(来自kinvey请求)转换为本地时区。
我使用以下代码:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ss.sTZD"
print(dateFormatter.dateFromString(newValue))
日期格式为:
ect =" 2016-08-28T16:30:06.553Z"要么 lmt =" 2016-08-28T16:30:06.553Z"
当我打印日期为零时,你知道我做错了什么吗?我认为它可能是dateFormat的结尾
答案 0 :(得分:3)
如果您的应用只能定位到iOS7 +,则可以使用以下所述的格式符号:
Fixed Formats (in Data Formatting Guide)
Unicode技术标准#35 version tr35-31
第二个| S | 1..n | 3456 |分数秒 - 截断(像其他 时间字段)到字母数。 (示例显示使用显示 模式SSSS秒值12.34567)
区域| X | 1 | -08,+ 0530,Z |该 带有小时字段和可选分钟字段的ISO8601基本格式。该 ISO8601 UTC指标" Z"当本地时间偏移为0时使用 与x相同,加上" Z"。)
因此,要解析小数秒,请使用大写' S'
和' X'适用于时区,包括" Z"作为UTC。
试试这个:
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSX"
(我逃脱了' T'因为它可能在将来用作另一个时间格式符号。)
PS。虽然我找不到描述解释" Z"的日期格式的线程。作为UTC + 0000,如果满足某些条件,忽略或删除它可能不是一个糟糕的解决方案。请找到最佳解决方案。