Amit Chauhan
Amit Chauhan

Reputation: 372

DateFormatter gives different dates for iOS 11 (converted to UTC) and iOS 10 (not converted to UTC)

Method to convert time string to date object:

class func StringToDate(format: String, date: String) -> Date{
        let formatter = DateFormatter()
        formatter.dateFormat = format
        return formatter.date(from: date)!
    }

Format: hh:mm a

time string: 10:00 AM

Result:

String Time: 10:00 AM, Object Time: 2000-01-01 10:00:00 +0000 //ios 10

String Time: 10:00 AM, Object Time: 2000-01-01 04:30:00 +0000 //ios 11

For iOS v11 result is fine but for iOS v10 its wrong, I want result in UTC format.

I have tried:

1. formatter.timeZone = NSTimeZone.local
2. formatter.timeZone = TimeZone(identifier: "UTC")
3. formatter.timeZone = TimeZone.ReferenceType.system

Upvotes: 0

Views: 192

Answers (1)

user28
user28

Reputation: 89

Please add this(it may be happening because your system is picking current timezone)-

formatter.timeZone = TimeZone.init(abbreviation: “UTC”)

Upvotes: 1

Related Questions