【发布时间】:2020-05-23 06:06:49
【问题描述】:
我正在将当前日期转换为 GMT/UTC 日期字符串。但是每次它返回给我的日期都是错误的。
我今天的日期是07 February 2020, 11:09:20 AM。您可以参考下图。
这是我的代码:
let apiFormatter = DateFormatter()
//apiFormatter.dateStyle = DateFormatter.Style.long
//apiFormatter.timeStyle = DateFormatter.Style.long
//apiFormatter.calendar = Calendar.current
apiFormatter.timeZone = TimeZone.init(identifier: "GMT") //TimeZone(abbreviation: "UTC") //TimeZone.current //
//apiFormatter.locale = Locale.current
//apiFormatter.dateFormat = "yyyy-MM-DD HH:mm:ss"
apiFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
//apiFormatter.dateFormat = "yyyy-MM-dd'T'hh:mm:ssZ"
let endDate = apiFormatter.string(from: Date())
print(endDate)
我得到的回报是您也可以查看图片 - 2020-02-38T05:33:34.598Z。我已经尝试了所有格式,但没有任何运气。谁能指出哪里出了问题?
【问题讨论】:
-
你期望得到什么?
-
2020-02-07T05:33:34.598 +0530这就是我想要的。 -
其实,没有。
2020-02-07T05:33:34.598 +0530与“现在”相去甚远。 5个半小时过去了。2020-02-38T05:33:34.598Z代表“现在”附近的某个地方,2020-02-07T12:23:25.175 +0530也是如此。你确定你还想要2020-02-07T05:33:34.598 +0530吗? -
您显示的内容 (
38) 是您注释掉的DD(大写,一年中的一天)的结果。 -
另外,您必须将语言环境设置为
en_US_POSIX。