日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++11新特性,利用std::chrono精简传统获取系统时间的方法

發布時間:2024/1/17 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++11新特性,利用std::chrono精简传统获取系统时间的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、傳統的獲取系統時間的方法

傳統的C++獲取時間的方法須要分平臺來定義。

相信百度代碼也不少。

我自己寫了下,例如以下。

const std::string getCurrentSystemTime() {if (PLATFORM_ANDROID || PLATFORM_IOS){struct timeval s_now;struct tm* p_tm;gettimeofday(&s_now,NULL);p_tm = localtime((const time_t*)&s_now.tv_sec);char date[60] = {0};sprintf(date, "%d-%02d-%02d %02d:%02d:%02d",(int)p_tm->tm_year + 1900,(int)p_tm->tm_mon + 1,(int)p_tm->tm_mday,(int)p_tm->tm_hour,(int)p_tm->tm_min,(int)p_tm->tm_sec);return std::string(date);}if (PLATFORM_W32){struct tm* p_tm;time_t timep;time(&timep);p_tm = localtime(&timep);char date[60] = {0};sprintf(date, "%d-%02d-%02d %02d:%02d:%02d",(int)p_tm->tm_year + 1900,(int)p_tm->tm_mon + 1,(int)p_tm->tm_mday,(int)p_tm->tm_hour,(int)p_tm->tm_min,(int)p_tm->tm_sec);log("%s",date);return std::string(date);}return ""; }


二、C++11 std標準庫跨平臺方法

顯然,我們注意到不同平臺下的代碼相似度非常高。那么能不能利用C++11里面的新特性,使得二者合并呢?

答案是肯定的。

非常easy的。代碼例如以下:

const std::string getCurrentSystemTime() {auto tt = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());struct tm* ptm = localtime(&tt);char date[60] = {0};sprintf(date, "%d-%02d-%02d %02d:%02d:%02d",(int)ptm->tm_year + 1900,(int)ptm->tm_mon + 1,(int)ptm->tm_mday,(int)ptm->tm_hour,(int)ptm->tm_min,(int)ptm->tm_sec);return std::string(date); }
又短又簡單有木有。

本文原創,如需轉載,請說明出處:

http://blog.csdn.net/q229827701/article/details/41015483

轉載于:https://www.cnblogs.com/yxwkf/p/5364805.html

總結

以上是生活随笔為你收集整理的C++11新特性,利用std::chrono精简传统获取系统时间的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。