Я застрял на GCC4.8. Я хочу распечатать текущее время как нечто иное, чем секунды. Если put_time
работал, мой код будет что-то простое, как это:Есть ли встроенная альтернатива std :: put_time для GCC <5?
std::cout << std::setw(24) << std::put_time(c_time, "[%T%z %F] ");
Без put_time
, я должен был бы доступ к элементам c_time
вручную и делать все форматирование вручную, что бы боль в а ** и это то, что я гораздо лучше избегаю, если это возможно. Обратите внимание, что это не означает, что я никогда не хочу взаимодействовать с C каким-либо образом, даже косвенно - я просто хотел бы, если это возможно, избегать кодирования на C.
Однако я не могу найти альтернативы std::put_time
, кроме strftime
, чего я бы хотел избежать, потому что для этого требуется почти вдвое больше строк кода, и мне гораздо труднее читать, по крайней мере, для меня. Кроме того, это C++, а не C, поэтому я хотел бы избегать функций C, когда это возможно.
Я что-то упустил? Есть ли встроенная альтернатива std::put_time
, которая работает под GCC 4.8?
Обратите внимание, что он не должен работать точно таким же образом - если он, скажем, напечатал его непосредственно на выходе, а не как манипулятор потока, это было бы прекрасно, как и функция который возвратил std::string
, содержащий отформатированное время.
Я сделал хороший бит Googling и нашел <chrono>
, но это не работает, потому что у него нет ничего, чтобы отформатировать время автоматически. Мне все равно придется делать это вручную, и я уверен, что это будет больше работы, так как мне придется анализировать количество секунд с эпохи в год, месяц, день и т. Д.
Я спрашивал, есть ли какие-либо встроенные библиотеки для этого, что по теме. Вы ответили на это. Кроме того, Stack Overflow позволяет вам сказать: «Это библиотека, которая решает вашу проблему»; он просто запрашивает специально для отключенных ресурсов, которые запрещены. Другими словами, если вы знаете стороннюю библиотеку, вы можете упомянуть ее; это не то, о чем я просил. Спасибо за вашу помощь! –