Trabalho com datas em Swift (iOS/macOS): bibliotecas e ferramentas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalho com datas em Swift (iOS/macOS): visão geral das bibliotecas



Trabalhar com datas e horas é uma das tarefas mais comuns e, ao mesmo tempo, complexas no desenvolvimento para iOS e macOS. O framework padrão Foundation fornece ferramentas poderosas, mas nem sempre intuitivas: Date, DateFormatter, Calendar, TimeInterval. No entanto, para simplificar operações rotineiras (parsing de strings, intervalos legíveis por humanos, localização), existem bibliotecas especializadas. Neste artigo, abordaremos as principais abordagens e ferramentas populares.



1. Ferramentas nativas do Foundation

Antes de adicionar soluções de terceiros, é importante saber trabalhar com as ferramentas nativas. As principais classes:

  • Date — um ponto no tempo (com precisão de segundos).
  • DateFormatter — conversão de string para data e vice-versa.
  • Calendar — trabalho com unidades de calendário (ano, mês, dia).
  • TimeInterval — diferença entre datas em segundos.


Exemplo: formatação de data

import Foundation

let now = Date()let formatter = DateFormatter()formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"formatter.locale = Locale(identifier: "pt_BR")let dateString = formatter.string(from: now)print(dateString) // 2025-02-18 14:30:00


Exemplo: cálculo de diferença em dias

let calendar = Calendar.currentlet start = Date()let end = calendar.date(byAdding: .day, value: 7, to: start)!let components = calendar.dateComponents([.day], from: start, to: end)print(components.day!) // 7


Essas funcionalidades são suficientes para a maioria dos cenários básicos. Mas quando é necessário parsing complexo ou localização, o código se torna extenso.



2. Biblioteca DateHelper

DateHelper — uma biblioteca leve (disponível via Swift Package Manager) que adiciona extensões convenientes ao Date. O principal destaque são as datas relativas legíveis por humanos.



Instalação: em Package.swift, adicione a dependência https://github.com/melvitax/DateHelper.



Exemplo: "3 horas atrás"

import DateHelper

let pastDate = Date() - 3.hoursprint(pastDate.toRelativeString()) // "3 hours ago"// Com localização: print(pastDate.toRelativeString(locale: "pt"))


A biblioteca suporta vários formatos de saída: .short, .medium, .full. É a opção ideal para aplicativos que precisam mostrar "agora mesmo", "ontem", "2 semanas atrás" sem escrever um parser próprio.



3. SwiftDate — a ferramenta mais poderosa

SwiftDate (autor: Daniele Margutti) é praticamente o padrão de facto para trabalhar com datas em Swift. Inclui:

  • Parsing de strings com detecção automática de formato.
  • Manipulações de datas (adição/subtração de componentes).
  • Cálculo de diferenças em qualquer unidade.
  • Localização (suporte a 30+ idiomas).
  • Trabalho com fusos horários e calendários.


Instalação: via SPM ou CocoaPods.



Exemplo: parsing de string com formato desconhecido

import SwiftDate

let dateString = "2025-02-18T14:30:00+03:00"if let date = dateString.toDate() { print(date.year) // 2025 print(date.month) // 2 print(date.toFormat("dd MMMM yyyy", locale: Locales.portuguese)) // "18 fevereiro 2025"}


Exemplo: obtenção de intervalo em formato legível

let start = DateInRegion(Date())let end = start + 2.hours + 30.minuteslet interval = start.toRelativeString(end, style: RelativeFormatter.defaultStyle())print(interval) // "2 hours 30 minutes later"


SwiftDate também pode trabalhar com

Recommendations