SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
16.11.2024

Aula 46: Trabalhando com Datas e Horários em Swift

Lidar com datas e horários é uma parte fundamental de muitas aplicações. Em Swift, o framework Foundation fornece um conjunto robusto de ferramentas para trabalhar com datas e horários de forma eficiente. Nesta aula, abordaremos o básico de trabalhar com datas e horários e como manipulá-los e formatá-los em Swift.

Importando o Foundation

Antes de começar, certifique-se de importar o framework Foundation em seu arquivo Swift, pois é nele que as funcionalidades de data e hora residem.

import Foundation

Obtendo a Data Atual

Para obter a data e hora atuais, você pode usar a classe Date. Veja como instanciá-la:

let dataAtual = Date()
print("Data e Hora Atuais: \(dataAtual)")

Formatando Datas

Exibir datas em um formato legível para humanos requer formatadores. Utilizamos DateFormatter para essa finalidade. Aqui está como formatar a data atual:

let formatadorData = DateFormatter()
formatadorData.dateStyle = .medium
formatadorData.timeStyle = .short

let dataFormatada = formatadorData.string(from: dataAtual)
print("Data e Hora Formatadas: \(dataFormatada)")

Formatos de Data Personalizados

Você também pode especificar formatos de data personalizados. Veja um exemplo de formatação personalizada:

formatadorData.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dataFormatadaPersonalizada = formatadorData.string(from: dataAtual)
print("Data e Hora Formatadas Personalizadas: \(dataFormatadaPersonalizada)")

Analisando Datas a Partir de Strings

Se você tiver uma data como string, pode convertê-la de volta para um objeto Date usando DateFormatter. Veja como analisar uma data:

let stringData = "2023-10-01 12:00:00"
if let dataAnalisada = formatadorData.date(from: stringData) {
    print("Data Analisada: \(dataAnalisada)")
} else {
    print("Formato de data inválido")
}

Tratando Fusos Horários

Tratar fusos horários é importante porque os usuários podem estar em diferentes regiões. Por padrão, DateFormatter usa o fuso horário do sistema. Veja como definir um fuso horário específico:

formatadorData.timeZone = TimeZone(abbreviation: "UTC")
let dataFormatadaUTC = formatadorData.string(from: dataAtual)
print("Data e Hora Formatadas em UTC: \(dataFormatadaUTC)")

Adicionando e Subtraindo Datas

Você pode precisar manipular datas adicionando ou subtraindo intervalos de tempo. Veja como fazer isso usando Calendar:

let calendario = Calendar.current

// Adicionando 5 dias à data atual
if let dataFutura = calendario.date(byAdding: .day, value: 5, to: dataAtual) {
    print("Data Futura (5 dias depois): \(formatadorData.string(from: dataFutura))")
}

// Subtraindo 10 horas da data atual
if let dataPassada = calendario.date(byAdding: .hour, value: -10, to: dataAtual) {
    print("Data Passada (10 horas antes): \(formatadorData.string(from: dataPassada))")
}

Comparando Datas

Você pode querer comparar datas para ver qual é anterior ou posterior. Veja como fazer isso:

let outraData = calendario.date(byAdding: .day, value: 3, to: dataAtual)!

if dataAtual < outraData {
    print("A data atual é anterior à outra data.")
} else if dataAtual > outraData {
    print("A data atual é posterior à outra data.")
} else {
    print("Ambas as datas são iguais.")
}

Conclusão

Nesta aula, exploramos os vários aspectos de trabalhar com datas e horários em Swift. Abordamos como obter a data atual, formatar, analisar, manipular e comparar datas. Compreender esses conceitos aprimorará significativamente sua capacidade de gerenciar dados relacionados ao tempo em suas aplicações.

Agora vá em frente e pratique o que você aprendeu!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!