|
分類:[C/C++]
こんにちは、time_tと文字列の相互変換にトライ中です。 windowsでは下の様な感じで一応うまくいっているのですが、 windows以外でもうまくいくか心配です。 識者のアドバイスをいただきたく。 よろしくおねがいします。
std::string timeToStr(time_t time) { char s[100]; struct tm *timep; timep = localtime(&time); strftime(s, NELEMS(s), "%Y/%m/%d %H:%M:%S", timep); return s; }
time_t strToTime(std::string str) { int year, month, day, hour, minute, second; sscanf(str.c_str(), "%d/%d/%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
struct tm time; time.tm_sec = second; time.tm_min = minute; time.tm_hour = hour; time.tm_mday = day; time.tm_mon = month - 1; time.tm_year = year - 1900; time.tm_isdst = 0;
return mktime(&time); }
void main(void) { time_t now = time(0); time_t last = ini.readTime(timeToStr(now)); std::cout << ((now == last)?("same"):("not same")) << std::endl; //"same" }
|