ctime () метод, как напечатать часы и секунды? - PullRequest
0 голосов
/ 26 мая 2011

HI

У меня есть следующий код:

int main ()
{
  time_t rawtime;

  time ( &rawtime );
  printf ( "The current local time is: %s", ctime (&rawtime) );

  std::string datetoString(ctime (&rawtime) );
  return 0;
}

std::string datetoString (char dat[]) 
                     //how to add ctime(&rawtime) in char dat[]?
{
    std::string rez;
    struct tm;
    strptime(dat, "%d %b %Y %H:%M:%S", &tm);
        // what library do i have to inclide for strptime?

    rez=tm.tm_mday + "-" + tm.tm_mon +"-"+ tm.tm_year+ hour+min+sec;
                                //how to print the hour,minutes and secods?

return rez;
}

У меня есть ошибки в местах, где я комментировал свои вопросы.

1 Ответ

2 голосов
/ 26 мая 2011

Вы можете использовать localtime () для преобразования time_t (секунд с начала эпохи) в сломанный экземпляр struct tm (или, скорее, localtime_r, который является поточно-ориентированным).Наконец, используйте strftime () для форматирования строк.(Нет необходимости использовать ctime в любом месте).Например,


#include <time.h>

...
time (&rawtime);
struct tm foo;
struct tm *mytm;
mytm = localtime_r (&rawtime, &foo);
char outstr[200];
strftime(outstr, sizeof(outstr), "%H:%M:%S", mytm);
...

Обработка ошибок, исправление потенциальных (тривиальных) ошибок, преобразование в std :: string и т. Д. Оставлено в качестве упражнения для читателя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...