Swift:
Getting the current date

How to:

Swift’s Foundation framework provides the Date class, making it straightforward to get the current date and time. Here is a basic example of how to get the current date:

import Foundation

let currentDate = Date()
print(currentDate)

This will output something like:

2023-04-12 07:46:23 +0000

The output format follows the ISO 8601 standard, using the UTC time zone. However, you might want to format this date for display purposes. Swift’s DateFormatter class comes to the rescue:

let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .medium
let formattedDate = formatter.string(from: currentDate)
print(formattedDate)

Sample output could be:

April 12, 2023 at 10:46:23 AM

Note that the output format will vary depending on the locale of the device running the code.

For projects that require more complex date manipulation, many Swift developers turn to third-party libraries such as SwiftDate. Here’s how you might use SwiftDate to get the current date in a specific time zone and format:

First, add SwiftDate to your project using SPM, CocoaPods, or Carthage. Then:

import SwiftDate

let rome = Region(calendar: .gregorian, zone: .europeRome, locale: .current)
let currentDateInRome = DateInRegion(Date(), region: rome)
print(currentDateInRome.toFormat("yyyy-MM-dd HH:mm:ss"))

This could output:

2023-04-12 09:46:23

Using SwiftDate, you can easily manipulate dates and times for different time zones and locales, simplifying complex date handling tasks in your Swift applications.