Convertendo uma data em uma string

C++:
Convertendo uma data em uma string

Como Fazer:

#include <iostream>
#include <iomanip>
#include <chrono>
#include <sstream>

int main() {
    // Pegando a data/hora atual usando chrono
    auto agora = std::chrono::system_clock::now();
    std::time_t tempo_atual = std::chrono::system_clock::to_time_t(agora);
    
    // Convertendo para string usando <iomanip>
    std::stringstream ss;
    ss << std::put_time(std::localtime(&tempo_atual), "%Y-%m-%d %H:%M:%S");
    
    // Exibindo a data/hora como string
    std::cout << "Data e hora atuais: " << ss.str() << std::endl;
    
    return 0;
}

Saída de exemplo:

Data e hora atuais: 2023-01-31 14:55:13

Mergulho Profundo:

Converter datas em strings é uma necessidade antiga em programação. Inicialmente, lidávamos com datas por meio de estruturas struct tm da biblioteca de tempo C. Atualmente em C++, temos std::chrono que foi introduzido com C++11 e aperfeiçoado ao longo dos anos, mais recentemente em C++20. Alternativas históricas incluíam o uso de bibliotecas de terceiros como a Boost.DateTime.

Por detalhes de implementação, std::put_time da biblioteca <iomanip> é comumente usado para formatar datas em C++. Ainda assim, pode-se usar funções de estilo C como strftime para realizar tarefas similares. Atenção à portabilidade e à localização ao converter datas em strings: formatações e fusos horários podem variar. C++20 introduziu novas abordagens, como std::format, que simplifica ainda mais a formatação de strings, mas ainda não havia sido amplamente adotada até o conhecimento atual.

Veja Também: