БлогNot. C++: вернуть строку string с датой и временем, отформатированными с учётом локал...

C++: вернуть строку string с датой и временем, отформатированными с учётом локали

Собственно, пример на возможности библиотеки <ctime>, она же <time.h>. Функция gettime возвращает string с нужной информацией, можно форматировать строку для функции strftime и по другому.

Классическая функция localtime, возвращающая указатель, считается в новых версиях Studio небезопасной, вместо неё используем localtime_s.

#include <iostream>
#include <clocale>
#include <ctime>
using namespace std;

//Вернуть полную строку даты и времени в соответствии с локалью
string gettime (void) {
 time_t now = time(0); //Получить метку времени по Гринвичу
 struct tm timeinfo;
 localtime_s (&timeinfo,&now); //Локализовать время
 char *format = "%A, %d %B %Y, %H:%M:%S"; 
  //Сделать строку формата, у нас "Monday, 20 March 2017, 13:08:23"
 char buffer[80];
 strftime (buffer, 80, format, &timeinfo); //Вывести время по формату в буфер
 string str_buffer(buffer); //Переписать буфер в объект string
 return str_buffer; //и вернуть этот объект
}

int main() {
 setlocale(LC_ALL, "Russian"); 
 string mytime = gettime();
 cout << mytime.c_str();
 cin.sync(); cin.get(); return 0;
}

20.03.2017, 14:02 [4584 просмотра]


теги: c++ учебное время studio

К этой статье пока нет комментариев, Ваш будет первым