Get UTC time for a particular date and time in swift?

Helllo all,

I have a particular date & time selected from datepicker in iOS. i want to convert this date & time into UTC time.I have used below function for it.

  • WKWebView Add to SubView
  • How to call original implementation when overwriting a method with a category?
  • How to turn off NSZombieEnabled in Xcode 4
  • Fit image of random size into a UIWebview (IOS)
  • How to change the device orientation programmatically in iOS 6
  • Alternatives to iCloud + Core Data to sync data between iOS and OS X
  • 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!)
      }
    

    My location is in india. So when i pass time like 2016-12-26 09:53:45 then it gives me UTC time as 2016-12-26 15:23:00 +0530.Now when i search in google for UTC time it shows me time as 4:32 AM 26 december.Please tell why is such diffrence & am i doing correct ?

    2 Solutions Collect From Internet About “Get UTC time for a particular date and time in swift?”

    Could you please try using below code:
    Because as per my understanding you should provide your local time zone first to convert your date into local and then it will convert into 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!)
      }
    

    I replaced timeZone code.Check and let me know if not solved

    This is because you are treating the date passed in parameter as UTC timezone, and asking it to be converted into Local Timezone. Instead you meant the opposite.

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