Search code examples
iosswiftnsdateformatter

How do you get last weeks date in swift in YYYY-MM-DD format?


How can I display date of one week ago in the format of YYYY-MM-DD like this one "2015-02-18" in Swift


Solution

  • You can use Calendar's date(byAdding component:) to calculate today minus a week and then you can format your date as desired using DateFormatter:

    let lastWeekDate = Calendar(identifier: .iso8601).date(byAdding: .weekOfYear, value: -1, to: Date())!
    let dateFormatter = DateFormatter()
    dateFormatter.calendar = .init(identifier: .iso8601)
    dateFormatter.locale = .init(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let lastWeekDateString = dateFormatter.string(from: lastWeekDate)