C/C++获取系统当前时间

摘要:
C/C++获取系统当前时间。C库中与系统时间相关的函数在<time h>中定义。在头文件中,C++在<ctime>头文件中定义。返回值。如果成功,则获取当前系统日历时间。否则,返回-1。通常,范围是[0-59],但有些系统会跳60秒。
C/C++获取系统当前时间
 
C库中与系统时间相关的函数定义在<time.h>头文件中, C++定义在<ctime>头文件中。
一、time(time_t*)函数
函数定义如下:

time_t time (time_t* timer);


获取系统当前日历时间 UTC 1970-01-01 00:00:00开始的unix时间戳
参数:timer 存取结果的时间指针变量,类型为time_t,指针变量可以为null。如果timer指针非null,则time()函数返回值变量与timer指针一样,都指向同一个内存地址;否则如果timer指针为null,则time()函数返回一个time_t变量时间。
返回值,如果成功,获取当前系统日历时间,否则返回 -1。

二、结构体 struct tm

变量类型说明范围
tm_secint每分钟的秒数[0 - 61]
tm_minint每小时后面的分钟数[0 - 59]
tm_hourint凌晨开始的小时数[0 - 23]
tm_mdayint从每月份开始算的天数[1 - 31]
tm_monint从一月份开始的月份数[0 - 11]
tm_yearint从1900年开始的年数 
tm_wdayint从每周天开始算的天数[0 - 6]
tm_ydayint一年的第几天,从零开始[0 - 365]
tm_isdstint夏令时 
    

这里有几个地方要注意:
1. tm_sec 在C89的范围是[0-61],在C99更正为[0-60]。通常范围是[0-59],只是某些系统会出现60秒的跳跃。
2. tm_mon 是从零开始的,所以一月份为0,十二月份为11。

三、本地时间转换函数localtime(time_t*)
函数原型
struct tm * localtime (const time_t * timer);
将日历时间转换为本地时间,从1970年起始的时间戳转换为1900年起始的时间数据结构

四、源码及编译
current_time.cpp

#include <cstdio>  
#include <ctime>  
  
int main(int argc, char* argv[]) {  
    time_t rawtime;  
    struct tm *ptminfo;  
  
    time(&rawtime);  
    ptminfo = localtime(&rawtime);  
    printf("current: %02d-%02d-%02d %02d:%02d:%02d
",  
            ptminfo->tm_year + 1900, ptminfo->tm_mon + 1, ptminfo->tm_mday,  
            ptminfo->tm_hour, ptminfo->tm_min, ptminfo->tm_sec);  
    return 0;  
}  

编译及运行
$ g++ current_time.cpp
$ ./a.out
current: 2017-07-26 23:32:46



免责声明:文章转载自《C/C++获取系统当前时间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[Python自学] Flask框架 (3) (路由、CBV、自定义正则动态路由、请求处理流程、蓝图)redis、memcached、mongoDB 对比下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OC语言·笔记二

1. 属性(Property)和实例变量(instance variable) 1.1 当定义一个属性时,本质上是在干什么(编译器在帮我们干什么): 1) 生成实例变量用来保存属性的值 2) 生成访问器(setter和getter方法)用于修改和访问属性的值 1.2 实际开发中知道的事: 1) 只读属性:只能读取值,不能修改值。这种属性只生成getter方...

oracle pl/sql 变量

一、变量介绍在编写pl/sql程序时,可以定义变量和常量;在pl/sql程序中包括有:1)、标量类型(scalar)2)、复合类型(composite) --用于操作单条记录3)、参照类型(reference) --用于操作多条记录4)、lob(large object)    二、标量(scalar)——常用类型1)、在编写pl/sql块时,如果要使用...

SPSS基础知识

3.1 数据的输入和保存 1. 打开SPSS后,界面包括变量视图和数据视图。 变量视图,用于对变量进行设置,数据视图为用户输入的数据。 2. SPSS有大量的函数调用功能进行数据分析 常用的数据分析包括比较均值、一般线性模型、广义线性模型、回归分析、相关分析、神经网络、分类和降维(适用于经济学、评价因子值和得分计算等问题)等等。 3.2 SPSS图形绘制...

Linux下Socket的简单使用及最简化封装

Linux下Socket的简单使用及最简化封装 /** 文件功能: linux 下套接字简化操作函数* 文件名称: linux_socket.h* 建立时间: 2007 年 07 月 19 号* 创建作者: wlzqi* 使用语言: C 或 C++ 语言* 使用环境: Linux + Windows* 函数要求: *    + 函数相对比较底层*    +...

使用Pls_Integer的好处

如果你要做循环的记数器,可以使用pls_integer. pls_interger,binary_integer,number中,pls_integer速度最快。   转的别人的: Binary_Integer 与 Pls_Integer 都是整型类型. Binary_Integer类型变量值计算是由Oracle来执行,不会出现溢出,但是执行速度较慢,因为...

VS调试技巧

下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入断点 在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢? 你有一个表达式在上面循环的某一次发生了变化,你想知道是哪一次...