How to convert a Persian date into a Gregorian in swift
For Swift 5: Format is little change for year
let formatter = DateFormatter()
formatter.dateFormat = "dd/MM/YYYY"
formatter.calendar = Calendar(identifier: .gregorian)
let date = Date()
let dateInGrogrian = formatter.string(from: date)
print(dateInGrogrian)
formatter.calendar = Calendar(identifier: .persian)
formatter.dateFormat = "dd/MM/YYYY"
print("Converted date to Hijri = \(formatter.string(from: date))")
Update for Swift 3:
let formatter = DateFormatter()
formatter.dateFormat = "dd/MM/yyyy"
formatter.calendar = Calendar(identifier: .gregorian)
let date = Date()
print("Converted date to Grogrian = \(formatter.string(from: date))")
formatter.calendar = Calendar(identifier: .persian)
formatter.dateFormat = "yyyy/MM/dd"
print("Converted date to Hijri = \(formatter.string(from: date))")
Here are alternatives:
- era: G (AD), GGGG (Anno Domini)
- year: y (2018), yy (18), yyyy (2018)
- month: M, MM, MMM, MMMM, MMMMM
- day of month: d, dd
- day name of week: E, EEEE, EEEEE, EEEEEE
I run into issue because I am running swift 2 NOT 3.(I am updatingXcode now)
here is the fix for the code above for people to see the changes from Swift 2 to Swift 3
import UIKit
let formatter = NSDateFormatter()
formatter.dateFormat = "yyy/MM/dd"
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let date = NSDate()
let dateInGrogrian = formatter.stringFromDate(date)
print("Date in Grogrian = \(dateInGrogrian)")
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierPersian)
formatter.dateFormat = "yyy/MM//dd"
print("Converted date to Jalali = \(formatter.stringFromDate(date))")