Swift version: 5.6
If you want to get a string from a Date
, Apple’s DateFormatter
class has everything you need: you can get short dates, long dates, dates with times, and can even go the opposite way to give you a Date
from a string.
There are four primary ways you’re going to use it:
Date
instance to a string using one of the built-in date formats.Date
instance to a string using one of the built-in time formats.Date
instance to a string using a completely custom format.Date
.Below are examples of each to get you started.
First, this converts a Date
to a short date string using dateStyle
:
let today = Date.now
let formatter1 = DateFormatter()
formatter1.dateStyle = .short
print(formatter1.string(from: today))
That will print something like “12/31/2019” depending on the user’s locale.
Second, this converts the same date to a medium time string using timeStyle
:
let formatter2 = DateFormatter()
formatter2.timeStyle = .medium
print(formatter2.string(from: today))
That will print something like “20:27:32” or “8:27:32pm” depending on the user’s locale.
Third, this converts the same date to a date and time string using a custom date format:
let formatter3 = DateFormatter()
formatter3.dateFormat = "HH:mm E, d MMM y"
print(formatter3.string(from: today))
That will print something like “20:32 Wed, 30 Oct 2019”.
Finally, this attempts to convert a string to a date
let string = "20:32 Wed, 30 Oct 2019"
let formatter4 = DateFormatter()
formatter4.dateFormat = "HH:mm E, d MMM y"
print(formatter4.date(from: string) ?? "Unknown date")
date(from:)
returns an optional Date
because it might be given a string containing an invalid value, so that code uses nil coalescing to make sure there’s a default value printed.
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 2.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.