如何获得UTC时间

 拍友2502881913 发布于 2023-02-10 09:15

我正在编写一个小程序来下载气象软件包使用的相应文件集.这些文件的格式YYYYMMDDYYYYMMDD HHMMUTC 类似.我想知道C++中UTC的当前时间,我在Ubuntu上.有一个简单的方法吗?

2 个回答
  • C++中的高端答案是使用Boost Date_Time.

    但这可能是矫枉过正的.C库有你需要的东西strftime,手册页有一个例子.

    /* from man 3 strftime */
    
    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]) { 
        char outstr[200];
        time_t t;
        struct tm *tmp;
        const char* fmt = "%a, %d %b %y %T %z";
    
        t = time(NULL);
        tmp = gmtime(&t);
        if (tmp == NULL) {
            perror("gmtime error");
            exit(EXIT_FAILURE);
        }
    
        if (strftime(outstr, sizeof(outstr), fmt, tmp) == 0) { 
            fprintf(stderr, "strftime returned 0");
            exit(EXIT_FAILURE); 
        } 
        printf("%s\n", outstr);
        exit(EXIT_SUCCESS); 
    }        
    

    我根据手册页中的内容添加了一个完整的示例:

    $ gcc -o strftime strftime.c 
    $ ./strftime
    Mon, 16 Dec 13 19:54:28 +0000
    $
    

    2023-02-10 09:19 回答
  • 你可以使用gmtime:

    struct tm * gmtime (const time_t * timer);
    Convert time_t to tm as UTC time
    

    这是一个例子:

    std::string now()
    {
      std::time_t now= std::time(0);
      std::tm* now_tm= std::gmtime(&now);
      char buf[42];
      std::strftime(buf, 42, "%Y%m%d %X", now_tm);
      return buf;
    }
    

    ideone链接:http://ideone.com/pCKG9K

    2023-02-10 09:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有