Swift - 将日期和时间对象从服务器转换为 iPhone 上的本地时间

标签 swift datetime-format

我用 php (laravel) 向我的数据库发出请求,它返回一个日期对象如下:

"lastMessageDate" : {
  "date" : "2016-06-06 23:37:32.000000",
  "timezone" : "UTC",
  "timezone_type" : 3
}

如何快速将此对象转换为 iPhone 的本地日期和时间?

谢谢。

最佳答案

import Foundation

let serverDateFormatter: NSDateFormatter = {
    let result = NSDateFormatter()
    result.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSSSS"
    result.timeZone = NSTimeZone(forSecondsFromGMT: 0)
    return result
}()

let s = "2016-06-06 23:37:32.000000"

let d = serverDateFormatter.dateFromString(s)!

以上将产生一个 NSDate 对象。日期对象知道如何处理时区。因此,例如,如果您想向用户显示日期,您可以使用为本地时区设置的日期格式化程序:

let localDateFormatter: NSDateFormatter = {
    let result = NSDateFormatter()
    result.dateStyle = .MediumStyle
    result.timeStyle = .MediumStyle
    return result
}()

print(localDateFormatter.stringFromDate(d)) // prints "Jun 6, 2016, 7:37:32 PM" in my time zone.

关于Swift - 将日期和时间对象从服务器转换为 iPhone 上的本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668553/

相关文章:

ios - 无法与谷歌地图中的自定义信息窗口交互

ios - 表达式类型 '@lvalue String?' 在没有更多上下文的情况下不明确

python - 使用 matplotlib 在轴标签中创建带有日期和时间的图形

Java 8 可选时间部分不起作用

ios - Xcode 10、Swift 4 - 如何跨多个 View Controller 传输数据?

ios - Swift:如何从我的应用程序打开本地 pdf 到 iBooks

python - 在 Python 中将日期时间(例如 2016-01-01、2016-01-11)转换为整数天(例如 0、11)

datetime - 什么是 at(1) 兼容时间格式?

arrays - 在 Swift 中将索引数组转换为字典

android - UTC 时间不匹配 - Java 与 Node JS 上的 Moment