ios - 如何将日期转换为本地时区 ios swift

标签 ios swift date

<分区>

我正在处理日期格式化程序,我从服务器收到了字符串类型的日期响应,我将其转换为日期格式,但我想做的是转换日期,然后根据本地时间进行管理。

例如,如果 12/06/2017, 06:48:03 是来自服务器的日期,而我来自巴基斯坦,那么它会根据 GMT+5 给我一个日期和时间是 12/06/2017, 11:48:03

与印度相同,它根据 GMT+5:30 为我提供日期和时间,即 12/06/2017, 12:18:03

这里是源码

public class func converServerTimeStampToDate (_ timeStamp: String) -> Date {

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MM/dd/yyyy, hh:mm:ss a"
        dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
        let localDate = dateFormatter.date(from: timeStamp)
        dateFormatter.timeZone = TimeZone.current
        dateFormatter.dateFormat = "MM/dd/yyyy, hh:mm:ss a"

       // return dateFormatter.string(from: localDate!)
        return dateFormatter.date(from:dateFormatter.string(from: 
       localDate!))!

    }

任何帮助将不胜感激!!

最佳答案

如果您希望结果是 Date 对象,只需使用@Intellij-Shivam 回答的第一部分:

func serverToLocal(date:String) -> Date? {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
    let localDate = dateFormatter.date(from: date)

    return localDate
}

(注意 DateFormatter.date(from:) 返回一个可选的,这是正确的,因为输入的日期字符串可能格式不正确。)

在您本地的时区中没有 Date 这样的东西。 日期 没有时区。他们在整个星球上记录了一个瞬间。

要显示您本地时区的日期,您可以使用 DateFormatter 类方法 localizedString():

let dateString = DateFormatter.localizedString(
  inputDate, 
  dateStyle: .medium, 
  timeStyle: .medium)

关于ios - 如何将日期转换为本地时区 ios swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006067/

相关文章:

ios - UIPickerview 选择员工和 ID

ios - 在两个 TableView 之间传递数据

传递可变数量参数的 Swift 问题

ios - 必须为标识符注册一个 nib 或一个类,或者在 Storyboard中连接一个原型(prototype)单元

swift - 对象已被删除或失效

c# - 日期时间时区调整

ios - 实现 PushKit 并测试开发行为

ios - 启用位码 - 为 iOS 9 做准备(xcode7 beta,支持 iOS 6)

javascript - AngularJS 指令从 templateUrl 检索模板时出现问题

javascript - JavaScript 将日期时间四舍五入到最后 10 分钟