#include#include #include #include using namespace std; class HistoryCache { public: static std::string getTimeStamp(time_t epochTime, const char* format = "%Y-%m-%d %H:%M:%S") { char timestamp[64] = {0}; strftime(timestamp, sizeof(timestamp), format, localtime(&epochTime)); return timestamp; } static time_t convertTimeToEpoch(const char* theTime, const char* format = "%Y-%m-%d %H:%M:%S") { std::tm tmTime; memset(&tmTime, 0, sizeof(tmTime)); strptime(theTime, format, &tmTime); return mktime(&tmTime); } }; int main() { // get current epoch time const time_t curTime = time(0); // convert current time to a string std::string curTimeStr = HistoryCache::getTimeStamp(curTime); // convert string time to an epoch time const time_t curTime2 = HistoryCache::convertTimeToEpoch(curTimeStr.c_str()); // display results std::cout << "Epoch Time: " << curTime << "n" << "As string : " << curTimeStr << "n" << "Epoch Time: " << curTime2 << std::endl; }
结果:
[root@jn cpp]# g++ time.cpp [root@jn cpp]# ./a.out Epoch Time: 1619351221 As string : 2021-04-25 19:47:01 Epoch Time: 1619351221 [root@jn cpp]#C++时间函数
m_time.cpp:
#include#include #include extern"C" { #include } class timeKit { public: timeKit(){ buffer = new char[20]; //TM = new struct tm; } ~timeKit(){ if (buffer) { delete[] buffer; } if (TM) { //delete TM; } } inline std::string TimeStr() { Epoch(); TM = localtime(&m_Time); strftime(buffer, 20, "%Y-%m-%d %H:%M:%S", TM); return m_TimeStr = std::string(buffer) + " "; } inline time_t Epoch(){ time(&m_Time); return m_Time;} private: //std::atomic m_lock; char* buffer; struct tm *TM; time_t m_Time; std::string m_TimeStr; }; #ifdef dujn_debug using namespace std; int main(){ timeKit mt; //cout << mt.getEpoch() << " : start" << endl; cout << mt.TimeStr() << " : 万丈高楼平地起"<< endl; } #endif
结果:
[root@jn cpp]# g++ m_time.cpp -Ddujn_debug -std=c++11 [root@jn cpp]# ./a.out 2021-11-03 11:01:16 : 万丈高楼平地起 [root@jn cpp]#
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)