获取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!) }