c++ | time 小结

通过查看源码分析

namespace std
{
  using ::clock_t;					// clock_t x;	X = clock();	//获取程序跑了多久
  using ::time_t;					// time_t y;	y = time(NULL);	//从纪元开始计算 相当于程序从1970年开始跑
    							   // 获取当前时间 time_t current_time; 
    							   //current_time = time(NULL); 	
    							   //或者 time(¤t_time); 当然也会返回 函数返回值也会可以是当前时间
  using ::tm;						//结构体 包含秒、分、时、天1(月)、月、天2(星期)、年份差(基准为1900)、天(年)、夏令				其实可以简单理解为本地时间

  using ::clock;
  using ::difftime;					//返回两个时间戳的差 time_t x, y; difftime(x, y);
  using ::mktime;					//将tm结构时间转换为时间戳
  using ::time;						
  using ::asctime;					//将tm结构时间转换为string
  using ::ctime;					//将时间戳转换为字符串
  using ::gmtime;					
  using ::localtime;
  using ::strftime;					//将tm 结构体按照指定format格式输出为string 
} // namespace





#include 
#include 
#include 

int main() {
    time_t current_time;
    struct tm *utc_timeinfo;

    time(&current_time);       // 获取当前时间戳    时间戳格式:月 日 当前时间  年份
    std::string nowTime = ctime(&current_time);
    printf("nowTime :%s\n", nowTime.c_str());
    utc_timeinfo = gmtime(&current_time); // 转换为 UTC 时间结构

    printf("UTC time: %s", asctime(utc_timeinfo));

    //本地模式
    utc_timeinfo = localtime(&current_time);
    std::string tmNowTime = asctime(utc_timeinfo);
    printf("localTime Mode :%s", tmNowTime.c_str());

    //指定格式
    char time_str[80];
    strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", utc_timeinfo);
    printf("strftime :%s", time_str);


    return 0;
}

//一些占位符的补充
%X %x		十六进制	分别以大写、小写表示
%llx		long long 大小的占位符		过短会被截断
%p			专输出地址		占位符
//

参考:
占位符参考

你可能感兴趣的:(C++,c++)