I've formated a string back to date which basic conversion and I've got totally different date.
import UIKit
extension String {
func toDate(dateFormat: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
return dateFormatter.date(from: self)!
}
}
let date = "01/24/2018 09:59:24"
print(date.toDate(dateFormat: "MM/dd/YYYY hh:mm:ss"))
Why it has decremented for about one month and one hour ?
EDIT
import UIKit
extension String {
func toDate(dateFormat: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
return dateFormatter.date(from: self)!
}
}
extension Date {
func toString(_ format: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
return dateFormatter.string(from: self)
}
}
let date = Date().toString("MM/dd/yyyy hh:mm:ss")
print(date)
print(date.toDate(dateFormat: "MM/dd/yyyy hh:mm:ss"))
RESULT
01/24/2018 12:48:33
2018-01-23 23:48:33 +0000