我有一个像“132233”这样的时间字符串(只有时间没有日期),我想把它转换成当地时间。因此,为了使用函数 localtime(),我首先使用 mktime() 将字符串转换为 time_t(感谢How to convert a string variable contains time to time_t type in c++?),然后使用 strftime 打印转换后的时间如(http://www.cplusplus.com/reference/ctime/strftime/)所示,我遇到了严重的运行时错误。任何人都可以告诉我什么是错的。提前致谢
int main()
{
string time_sample="132233";
std::string s_hrs (time_sample.begin(), time_sample.begin()+2);
std::string s_mins (time_sample.begin()+2,time_sample.begin()+4);
std::string s_secs (time_sample.begin()+4,time_sample.begin()+6);
int hrs = atoi(s_hrs.c_str());
int mins = atoi(s_mins.c_str());
int secs = atoi(s_secs.c_str());
struct tm time_sample_struct = {0};
time_sample_struct.tm_hour = hrs;
time_sample_struct.tm_min = mins;
time_sample_struct.tm_sec = secs;
time_t converted_time;
converted_time = mktime(&time_sample_struct);
struct tm * timeinfo;
char buffer[80];
timeinfo = localtime(&converted_time);
strftime(buffer,80,"%I:%M:%S",timeinfo);
puts(buffer);
cout<<endl;
getch();
return 0;
}