Helllo all,
我有一个特定的日期&从iOS中的datepicker中选择的时间。我想转换这个日期&到UTC时间的时间。我已经使用了以下功能。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.local
return dateformattor.string(from: dt1!)
}
我的位置在印度。因此,当我像2016-12-26 09:53:45
那样通过时间时,它会将UTC时间作为2016-12-26 15:23:00 +0530
。现在,当我在谷歌搜索UTC时间时,它显示我的时间为4:32 AM 26 december
。请告诉我为什么会有这样的差异&安培;我做得对吗?
答案 0 :(得分:1)
您可以尝试使用以下代码: 因为根据我的理解,您应首先提供您当地的时区,将您的日期转换为本地,然后它将转换为UTC:
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}
我更换了timeZone code.Check并告诉我,如果没有解决
答案 1 :(得分:1)
这是因为您将参数中传递的日期视为UTC时区,并要求将其转换为本地时区。相反,你的意思恰恰相反。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}