ios - Swift dateFormat 返回错误的时间
问题描述
我想返回来自我的 API 的日期/时间。服务器位于阿姆斯特丹。
迅速:
//load from api
print(date)
let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss"
df.timeZone = TimeZone(identifier: "Europe/Amsterdam")
df.locale = Locale(identifier: "en_US")
var updated = dateFormatter.date(from: "\(date)")
//return format
print(updated)
返回:
2020-01-10 00:01:01
Optional(2020-01-09 23:01:01 +0000)
我不知道为什么,但我认为输出正在返回 GMT。输出应该是2020-01-10 00:01:01 +0000
因为阿姆斯特丹是GMT+1。
解决方案
正如 vadian 在评论中解释的那样,它正在按预期工作。
但是,如果您想显示本地日期而不是 UTC,您可以在此处使用我的代码段。
如果知道您总是只想要一个给定的时区,只需修改代码以添加正确的秒数。(例如,在阿姆斯特丹时间的情况下,它比 UTC 多 3600 秒。)
推荐阅读
- java - Android BLE write Characteristic 锁定 onCharacteristicWrite/onCharacteristicChange
- java - 当我运行我的开关盒并选择一个选项时,它将不断循环该选项
- javascript - TextureLoader 在 Three.js 中不起作用。我如何让它工作?
- android - React-native:组件不会在android上的屏幕上渲染超过某个点
- entity-framework - 如何使用 LINQ for EF6 进行查询,具有多对多关系的数据库优先方法
- python - Pandas 中分类变量的顺序
- python-3.x - 使用特定令牌的 Python 请求重定向
- r - 在 R 中构造 For 循环和 if 循环
- python - 仅在数组数据 Python3 上打印数字
- vba - 在幻灯片母版中命名形状的方法?