获取swift特定日期和时间的UTC时间?

Helllo all,

我从iOS中的datepicker中选择了特定的日期和时间。 我想将这个日期和时间转换为UTC时间。我已经使用了以下function。

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 2016-12-26 15:23:00 +0530那样通过时间时它会给我UTC时间2016-12-26 15:23:00 +0530 。现在当我在谷歌搜索UTC时间时它显示我的时间4:32 AM 26 december 。请告诉我为什么会出现这样的差异并且我做得对吗?

您可以尝试使用下面的代码:因为根据我的理解,您应首先提供您当地的时区,将您的日期转换为本地,然后它将转换为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并让我知道如果没有解决

这是因为您将参数中传递的日期视为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!) }