我是靠谱客的博主 俊秀水池,最近开发中收集的这篇文章主要介绍mktime 函数输出时间戳错误,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最后发现居然是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 函数输出时间戳错误所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部