嗨,

我有以下代码:

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;
}


我在评论问题的地方有错误。

最佳答案

您可以使用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等,作为练习留给读者。

关于c++ - ctime()方法如何打印小时和秒?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6135885/

10-12 14:55