json - 如何在没有时区的情况下解析 ISO8061 至今
问题描述
我从服务器接收 JSON 格式的数据,其中一个字段date
包含年、月和日:
"date": "2018-03-11",
我不需要确切的时间,只需要一天和一个月。我使用了带有语言环境的 DateFormatter,但我仍然收到来自 UTC 时区的日期。我住在 CET (+1)/ CEST (+2) 时区,所以我想知道解析这个日期的最佳方法是什么。当我"2018-03-11"
从服务器收到时,我想得到:
date = 2018-03-11 00:00:00
日期格式化程序:
private let dateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: Calendar.Identifier.iso8601)
dateFormatter.locale = Locale(identifier: "pl_PL")
dateFormatter.dateFormat = "yyyy-MM-dd"
return dateFormatter
}()
解决方案
只需使用
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.init(identifier: "UTC")
let dateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.init(identifier: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd"
return dateFormatter
}()
print(dateFormatter.date(from: "2018-03-11"))
推荐阅读
- python - 如何使用 Tensorflow(python) 为 keras model.fit() 创建我自己的数据集?
- python - 为什么熊猫会在加入后使用数据框?
- javascript - 为什么这个子对象是空的,不管我做什么?
- javascript - 它是对象还是数组?
- swift - 如何通过 IF 检查字符串的 endIndex?
- azure-devops - 使用 Azure DevOps / VSTS 失败的计划生成的电子邮件通知
- javascript - 弹出窗口中的 Javascript
- django - Django Allauth - 将上下文添加到密码重置电子邮件
- python - 具有模型继承的 Django 索引
- xamarin - 我无法让我的自定义字体与 Xamarin.Forms 一起使用