ios - 防止日期本地化

标签 ios swift date

我有以下字符串:

let dateString = "2018-04-18T04:54:00-04:00"

我通过执行以下操作通过 ISO8601DateForamtter 初始化 Date:

let formatter = ISO8601DateFormatter()
let date = formatter.date(from: dateString)

如果我打印日期,我会得到以下结果:

Apr 18, 2018 at 1:54am

格式化程序会自动将时间转换为我的本地时间。如何防止占用我的时区?例如,我希望 Date 对象显示以下内容:

Apr 18, 2018 at 4:54am 

最佳答案

对于 ISO86012018-04-18T04:54:00-04:00 表示 2018-04-18 04:54:00 > GMT -4h。要打印原始字符串中的时间,您需要创建一个日期格式化程序,其特定时区为 -4

let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(secondsFromGMT: -4 * 60 * 60)
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormatter.string(from: date))

你将会得到

2018-04-17 04:54:00

仅供引用,我正在添加 ISO8601 的链接

关于ios - 防止日期本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887879/

相关文章:

ios - textViewDidChange 仅在键入完整字符串时发生变化。我想让它检查每个字符

ios - 从 Swift 3.2 迁移到 Swift 4 出现 "failed to import bridging header "错误

swift - swift Foundation 中的第 5747 行是“public typealias ObservableObject = ObservableObject”,为什么?

python - 我可以完全停止使用 datetime.date 吗?

JavaScript:意外结果获取该月剩余天数

ios - admob横幅广告在游戏场景中大约一分钟后显示广告忽略bannerAd.isHidden xcode 8

iphone - 更改导航 Controller 后退按钮的颜色

swift - NSTextList 格式

ios - Swift:非通用结构中的通用初始化

Mysql查询问题(总时间)