C++继承了C语言用于日期和时间操作的结构和函数,使用之前程序要引用<ctime>头文件

有四个与时间相关的类型:clock_t、time_t、size_t、和tm。类型clock_t、size_t、和time_t能够把系统时间和日期表示为某种整数。

结构体tm把时间和日期以C结构的形式保存,tm结构的定义如下:

struct tm
{
int tm_sec; //秒,正常范围0 ~59,但是允许到61
int tm_min; //分 范围 0~59
int tm_hour; //小时 0~23
int tm_mday; //一月中的第几天
int tm_mon; //月 0~11
int tm_year; //自1900年起的年数
int tm_wday; //一周中的第几天
int tm_yday; //一年中的第几天
int tm_isdst; //夏令时
}

相关函数:

函数

描述

time_t time(time_t *time);

该函数返回系统的当前日历时间。自1970年1月1日以来经过的秒数,如果系统没有时间,返回-1

char *ctime(const time_t *time);

该函数返回一个表示当地时间的字符串指针,字符串形式day month year hours:minutes:seconds year\n\0

struct tm *localtime(const time_t *time);

该函数返回一个指向表示本地时间的tm结构的指针。

clock_t clock(void);

该函数返回程序执行起,处理器时间所使用的时间,如果时间不可用,则返回-1

char *asctime(const struct tm *time);

该函数返回一个指向字符串的指针,字符串包含了time所指向结构中存储的信息,返回的形式为:day month year hours:minutes:seconds year\n\0

struct tm *gmtime(const time_t *time);

该函数返回一个指向time的指针,time为tm结构,用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示

time_t mktime(struct tm *time);

该函数返回日历时间,相当于time所指向结构中存储的时间

double difftime(time_t time2,time_t time1);

该函数返回time1和time2之间相差的秒数

size_t strftime();

该函数可用于格式化日期和时间为指定的格式

实例:

#include<iostream>
#include<ctime>
using namespace std; int main()
{
//基于当前系统日期和时间 初始化0
time_t now = time(); /把now转换成字符串形式
char *dt = ctime(&now); cout << "local date and time: " << dt << endl; //把now转化成tm结构
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "UTC date and time : " << dt << endl;
return ;
}

运行结果:

exbot@ubuntu:~/wangqinghe/C++/time$ ./time

local date and time:  Mon Aug  5 14:54:25 2019

UTC date and time :  Mon Aug  5 06:54:25 2019

使用结构体tm格式化时间

#include<iostream>
#include<ctime>
using namespace std; int main()
{
time_t now = time(); cout << "from 1970 then the seconds passed : " << now << endl; tm* ltm = localtime(&now); cout << "year : " << + ltm->tm_year << endl;
cout << "month : " << + ltm->tm_mon << endl;
cout << "day : " << ltm->tm_mday << endl;
cout << "hour : " << ltm->tm_hour << ":";
cout << ltm->tm_min << ":";
cout << ltm->tm_sec << endl;
return ;
}

运行结果:

exbot@ubuntu:~/wangqinghe/C++/time$ ./time1

from 1970  then the seconds passed : 1564988067

year : 2019

month : 8

day : 5

hour : 14:54:27

以20xx-xx-xx xx:xx:xx格式输出结果:

#include<iostream>
#include<ctime>
#include<cstdlib>
#include<cstdio> using namespace std; string Get_Current_Date(); int main()
{
cout << Get_Current_Date().c_str() << endl;
return ;
} string Get_Current_Date()
{
time_t nowtime;
nowtime = time(NULL);
char tmp[];
strftime(tmp,sizeof(tmp),"%Y-%m-%d %H:%M:%S",localtime(&nowtime));
return tmp;
}

运行结果:

exbot@ubuntu:~/wangqinghe/C++/time$ ./time2

2019-08-05 15:00:14

日期与时间(C/C++)的更多相关文章

  1. [Java]Java日期及时间库插件 -- Joda Time.

    来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...

  2. SharePoint 2013 日期和时间字段格式设置

    前言 最近碰到一个需求,用户希望修改日期和时间字段的格式,因为自己的环境是英文的,默认的时间格式是[月/日/年]这样的格式,我也是碰到这个问题才知道,这是美式的时间格式,然而用户希望变成英式的时间格式 ...

  3. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

  4. python笔记7:日期和时间

    Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. 时间 ...

  5. PHP的日期和时间处理函数

    1. 将日期和时间转变为时间戳 1.1 time() 原型:time(void) 作用:返回当前时间的 UNIX时间戳. 参数:void,可选(即无参数) 1.2 mktime() 原型:int mk ...

  6. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

    VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...

  7. Sql Server系列:日期和时间函数

    1. 获取系统当前日期函数GETDATE() GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime. SELECT GETDATE() 2. 返回UTC日期的函数G ...

  8. Sql Server函数全解(四)日期和时间函数

      日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同 ...

  9. SQL Server 日期和时间函数

    http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html 1.常用日期方法(下面的GetDate() = '2006-11-08 ...

  10. PHP日期与时间

    时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数.它也被称为 Unix 时间戳(Unix Timestamp).Unix时间戳(Unix timestamp),或称Uni ...

随机推荐

  1. Spring Boot 获取Bean对象实体

    一.实现 ApplicationContextAware 接口 package com.zxguan; import org.springframework.beans.BeansException; ...

  2. Jmeter4.0---- 测试数据说明(17)

    1.说明 jmeter工具对于请求的测试结果,有多种形式展现,但是数据比较难懂,现在针对不同的展现做具体的说明. 2.监听器 (一)图形结果 (1)样本数目:总共发到服务器的请求数 (2)最新样本:服 ...

  3. springcloud必知功能使用教程

    springcloud Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路 ...

  4. LeetCode 滑动窗口题型整理

    一.滑动窗口题型模板 /* * 滑动窗口类型: 模板 */ public List<Integer> slideWindowMode(String s, String t) { // 1 ...

  5. python3学习特性

    一 实例变量与类变量 class Pepple: __age=18 __name="zhangfff" @classmethod def GetInfo(cls): print(c ...

  6. 【SpringBoot】入门程序和机制分析

    一.初建项目 首先要导入SpringBoot的Maven依赖 <!-- Inherit defaults from Spring Boot --> <!-- 这是SpringBoot ...

  7. 智能指针原理及实现(2)unique_ptr

    只允许基础指针的一个所有者. 可以移到新所有者(具有移动语义),但不会复制或共享(即我们无法得到指向同一个对象的两个unique_ptr). 替换已弃用的 auto_ptr. 相较于 boost::s ...

  8. docker-compose 编排文件小疑点

    在学习docker-compose的时候,查看了下st2中的docker-compose.yml文件,有个地方没搞明白 env_file 制定的文件路径,一开始以为是在对应的容器中的conf目录中,但 ...

  9. PXC节点启动与关闭

    PXC节点启动与关闭 最后关闭的PXC节点是安全退出时. cat /var/lib/mysql/grastate.dat,其中safe_to_bootstrap: 1,再次启动集群是则先启动该节点 s ...

  10. CentOS7 解决不能切换中英文输入法的问题

    1. 运行 im-chooser(如果没有要先安装) $ im-chooser 2. 在打开的窗口选择 iBus,然后 Logout 再 Login, 输入法即可切换.