Невозможно преобразовать строку с секундами из эпохи в date_time - PullRequest
0 голосов
/ 26 июня 2019

У меня есть строка, содержащая секунды из эпохи, как мне преобразовать эту строку в формат
как таковой -

ГОД-МЕСЯЦ-ДЕНЬ ЧЧ: ММ: СС

Здесь MONTH должен отображать номер месяца, а DAY - номер дня.Также время должно быть в 24-часовом формате.
Например:

2019-06-26 11: 14: 25

Я попытался использовать strptimeно не смогли этого сделать, может кто-нибудь помочь мне в том, что я делаю неправильно.
Это то, что я пробовал до сих пор

int main()
{
    string timee = "12341234534";

    const char *ptr = timee.c_str();
    struct tm tim;
    strptime(ptr, "%S", &tim);
    time_t abcd = mktime(&tim);

    cout<<abcd;
    return 0;

}

Нашел этот фрагмент кода в другой ссылке на стек-поток Как преобразовать строковую переменную, содержащую время, в тип time_t в c ++?

1 Ответ

1 голос
/ 26 июня 2019

Ваш вопрос немного сбивает с толку, но, думаю, я понял, что вы хотите ...

Если время указано в time_t совместимом формате, просто прочитайте его прямо в time_tпеременной, и преобразуйте его через std::localtime, чтобы вы могли вывести его в требуемом формате, используя std::put_time.

Что-то вроде

std::time_t time;
std::cin >> time;
std::cout << std::put_time(std::localtime(&time), "%F %T") << '\n';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...