Swift 4 : Set Different Date and Time

jorjj picture jorjj · Nov 13, 2017 · Viewed 8.2k times · Source

I know how to get local date and time, but what I want to do is getting the date and time from different places. For example, I want to find out what the time and date is in New York. How can i solve this simple problem?

Here is my code for local date and time :

let date = NSDate()
let calendar = Calendar.current

let components = calendar.dateComponents([.hour, .minute, .month, .year, .day, .second, .weekOfMonth], from: date as Date)

let currentDate = calendar.date(from: components) 

I searched about it here, but i didn't find what i want and I'm still looking for the date libaries. If you know any source or sample to redirect me, I really appreciate that.

Answer

Sweeper picture Sweeper · Nov 13, 2017

If you just want to format the date to a string, consider using a DateFormatter instead:

let date = Date()
let formatter = DateFormatter()
formatter.timeZone = TimeZone(identifier: "America/New_York")
formatter.dateStyle = .long
formatter.timeStyle = .long
formatter.string(from: date)

If you want to get the date components and process them, use the dateComponents(in:from:) method.

let components = Calendar.current.dateComponents(in: TimeZone(identifier: "America/New_York")!, from: date)