C/C++如何获取当前系统时间的实例详解

 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_sec int 每分钟的秒数 [0 - 61]
tm_min int 每小时后面的分钟数 [0 - 59]
tm_hour int 凌晨开始的小时数 [0 - 23]
tm_mday int 从每月份开始算的天数 [1 - 31]
tm_mon int 从一月份开始的月份数 [0 - 11]
tm_year int 从1900年开始的年数  
tm_wday int 从每周天开始算的天数 [0 - 6]
tm_yday int 一年的第几天,从零开始 [0 - 365]
tm_isdst int 夏令时  
       

这里有几个地方要注意:

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\n",
      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++如何获取当前系统时间的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 基于C/C++时间函数的使用详解

    C/C++对时间的操作也有许多值得大家注意的地方.最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作.获取和显示等等的问题.下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作.使用时间的方法.但在这之前你需要了解一些"时间"和"日期"的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Gre

  • C/C++判断传入的UTC时间是否当天的实现方法

    这里先给出一个正确的版本: 复制代码 代码如下: #include <iostream>#include <time.h> using namespace std; bool IsInToday(long utc_time){ time_t timeCur = time(NULL);    struct tm curDate = *localtime(&timeCur); struct tm argsDate = *localtime(&utc_time); if

  • C/C++如何获取当前系统时间的实例详解

     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()函数返回值变量

  • Thinkphp5微信小程序获取用户信息接口的实例详解

    Thinkphp5微信小程序获取用户信息接口的实例详解 首先在官网下载示例代码, 选php的, 这里有个坑 官方的php文件,编码是UTF-8+的, 所以要把文件改为UTF-8 然后在Thinkphp5 extend文件夹下建立Wxxcx命名空间,把官方的几个类文件放进去(这里要注意文件夹名, 命名空间名, 类名的, 大小写,一定要一样,官方的文件名和类名大小写不一样) 然后是自己的thinkphp接口代码: <?php /** * Created by PhpStorm. * User: le

  • StackTraceElement获取方法调用栈信息实例详解

    本文研究的主要是StackTraceElement获取方法调用栈信息的相关内容,具体介绍和实例如下. 一.什么是StackTrace StackTrace(堆栈轨迹)存放的就是方法调用栈的信息,异常处理中常用的printStackTrace()实质就是打印异常调用的堆栈信息. 二.StackTraceElement介绍 StackTraceElement表示StackTrace(堆栈轨迹)中的一个方法对象,属性包括方法的类名.方法名.文件名以及调用的行数. public final class

  • WinForm实现最小化到系统托盘方法实例详解

    本文实例讲述了WinForm实现最小化到系统托盘方法.分享给大家供大家参考.具体分析如下: 有个叫NotifyIcon的控件 1.建个WinForm项目,其它操作略过. 2.拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件. 3.实现Form的SizeChanged事件,代码如下: if(this.WindowState == FormWindowState.Minimized) //判断是否最小化 { this.ShowInTaskbar = f

  • WPF ComboBox获取当前选择值的实例详解

    WPF下给ComboBox设置绑定字段时可通过如下设置: combobox.SelectedValuePath = "编号" ;//为隐藏的一个字段 combobox .DisplayMemberPath = "名称" ;//为显示的字段 获得隐藏字段方式: combobox .SelectedValue.ToString (); 获得显示的字段: combobox.Text 补充:WPF中的ComboBox框赋值 WPF中的ComboBox框不能直接赋值给实体(选

  • C++获取当前系统时间的方法总结

    本文实例讲述了C++获取当前系统时间的方法.分享给大家供大家参考.具体如下: 方案- 优点:仅使用C标准库:缺点:只能精确到秒级 #include <time.h> #include <stdio.h> int main( void ) { time_t t = time(0); char tmp[64]; strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t)); puts(

  • cmd下获取当前系统时间的bat

    如何获取日期呢? 格式: %date% 注:cmd中测试需要用echo %date%,bat中直接使用即可 结果: 2020/03/13 周五 如何获取时间呢? 格式: %time% 注:cmd中测试需要用echo %time%,bat中直接使用即可 结果: 20:50:29.66 这是获取的系统标准格式的日期和时间,但是有时候我们需要使用规定的格式,怎么办呢? 格式: %date:~x,y%以及%time:~x,y% 说明: x是开始位置,y是取得字符数 比如说我要获取完整的日期和时间, 格式

  • C++如何获取当前系统时间及格式化输出

    本文主要使用time() 及strftime() 函数实现c++获取系统时间. C++系统和时间相关的函数基本上都是使用C语言提供的标准接口 在程序中获取系统时间是常见的操作,很多情况下使用系统提供的time函数即可获取. time() 是系统C语言的标准接口,通过man time 或者man 2 time 可查看详细的使用方法. include <time.h> include <stdio.h> int main() { time_t tt = time(NULL); tm*

  • Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /**  * 获取系统当前时间之方式一  * @explain 使用Calendar实现  * @param format  * @return  */ public static String getSysdateStr(String format) {     Date sysdate = Calend

  • JavaScript实现实时更新系统时间的实例代码

    一.Js代码 function getTime(){ str = "当前系统时间:" var p = document.getElementById("sy_time"); time = new Date(); year = time.getFullYear(); month = time.getMonth() + 1; day = time.getDate(); hour = time.getHours(); minutes = time.getMinutes()

随机推荐