概述
最后发现居然是gmtime 影响的。。。
#include <iostream>
#include <vector>
#include <time.h>
#include <stdio.h>
#include <string.h>
using namespace std;
void printStructTime(struct tm *tm_local)
{
printf("%04d/%02d/%02d %02d:%02d:%02d %sn",
tm_local->tm_year + 1900, tm_local->tm_mon + 1,
tm_local->tm_mday, tm_local->tm_hour,
tm_local->tm_min, tm_local->tm_sec,
tm_local->tm_zone);
}
int main()
{
// time_t timep;
// struct tm *p;
// time(&timep);
// printf("time() : %d n", timep);
// p = localtime(&timep);
// timep = mktime(p);
// printf("time()->localtime()->mktime():%dn", timep);
// time_t nNow = time(NULL);
// cout << nNow << endl;
// struct tm *objTime1 = localtime(&nNow);
// printStructTime(objTime1);
// time_t nTime1 = mktime(objTime1);
// cout << nTime1 << endl;
time_t nNow = time(NULL);
cout << nNow << endl;
struct tm *objTime1 = localtime(&nNow);
printStructTime(objTime1);
time_t nTime1 = mktime(objTime1);
cout << nTime1 << endl;
struct tm *objTime2 = gmtime(&nNow);
printStructTime(objTime2);
time_t nTime2 = mktime(objTime2);
cout << nTime2 << endl;
// objTime1 = localtime(&nTime1);
// printStructTime(objTime1);
// objTime2 = gmtime(&nTime1);
// printStructTime(objTime2);
// objTime1->tm_isdst = 0;
// nTime1 = mktime(objTime1);
// nTime2 = mktime(objTime2);
// cout << nTime1 << endl;
// cout << nTime2 << endl;
// // tm 结构体转时间戳
// time_t nTime1 = mktime(objTime1);
// cout << nTime1 << endl;
// struct tm *objTime2;
// objTime2 = localtime(&nTime1);
// printStructTime(objTime2);
// vector<string> objResult;
// string strTest = "20201116032728_IPCAM_01.ps";
// split(strTest, objResult, "_");
// cout << objResult.at(0) << endl;
// string strTime1 = objResult.at(0);
// time_t nNow = time(NULL);
// struct tm *objTime1 = gmtime(&nNow);
// // 时间字符串转tm 结构体
// strptime(strTime1.c_str(), "%Y%m%d%H%M%S", objTime1);
// printStructTime(objTime1);
// char tmp_time[128] = {0};
// string strTime2;
// // tm 结构体转时间字符串
// strftime(tmp_time, 128, "%a, %d %b %Y %H:%M:%S %Z", objTime1);
// strTime2 = tmp_time;
// cout << strTime2 << endl;
// // tm 结构体转时间戳
// time_t nTime1 = mktime(objTime1);
// cout << nTime1 << endl;
// struct tm *objTime2;
// objTime2 = gmtime(&nTime1);
// printStructTime(objTime2);
return 0;
}
最后
以上就是俊秀水池为你收集整理的mktime 函数输出时间戳错误的全部内容,希望文章能够帮你解决mktime 函数输出时间戳错误所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复