1.  time() 函数

/*  time - 获取计算机系统当前的日历时间(Calender Time)
* 处理日期时间的函数都是以本函数的返回值为基础进行运算
*
* 函数原型:
* #include <time.h>
*
* time_t time(time_t *calptr);
*
* 返回值:
* 成功:秒数,从1970-1-1,00:00:00
*
* 使用:
* time_t now;
*
* time(&now); // == now = time(NULL);
*/

2.  localtime() 函数

/*
* localtime - 将时间数值变换成本地时间,考虑到本地时区和夏令时标志
*
* 函数声明:
* #include <time.h>
*
* struct tm * localtime(const time_t *timer);
*
*/
/*  struct tm 结构
*
* 此结构体空间由内核自动分配,而且不需要去释放它
*/
struct tm {
int tm_sec; /*秒, 范围从0到59 */
int tm_min; /*分, 范围从0到59 */
int tm_hour; /*小时, 范围从0到23 */
int tm_mday; /*一个月中的第几天,范围从1到31 */
int tm_mon; /*月份, 范围从0到11 */
int tm_year; /*自 1900起的年数 */
int tm_wday; /*一周中的第几天,范围从0到6 */
int tm_yday; /*一年中的第几天,范围从0到365 */
int tm_isdst; /*夏令时 */
};

3. Demo 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h> #define _DATETIME_SIZE 32 // GetDate - 获取当前系统日期
/**
* 函数名称:GetDate
* 功能描述:取当前系统日期
*
* 输出参数:char * psDate - 系统日期,格式为yyymmdd
* 返回结果:0 -> 成功
*/
int
GetDate(char * psDate){
time_t nSeconds;
struct tm * pTM; time(&nSeconds); // 同 nSeconds = time(NULL);
pTM = localtime(&nSeconds); /* 系统日期,格式:YYYMMDD */
sprintf(psDate,"%04d-%02d-%02d",
pTM->tm_year + , pTM->tm_mon + , pTM->tm_mday); return ;
} // GetTime - 获取当前系统时间
/**
* 函数名称:GetTime
* 功能描述:取当前系统时间
*
* 输出参数:char * psTime -- 系统时间,格式为HHMMSS
* 返回结果:0 -> 成功
*/
int
GetTime(char * psTime) {
time_t nSeconds;
struct tm * pTM; time(&nSeconds);
pTM = localtime(&nSeconds); /* 系统时间,格式: HHMMSS */
sprintf(psTime, "%02d:%02d:%02d",
pTM->tm_hour, pTM->tm_min, pTM->tm_sec); return ;
} // GetDateTime - 取当前系统日期和时间
/**
* 函数名称:GetDateTime
* 功能描述:取当前系统日期和时间
*
* 输出参数:char * psDateTime -- 系统日期时间,格式为yyymmddHHMMSS
* 返回结果:0 -> 成功
*/
int
GetDateTime(char * psDateTime) {
time_t nSeconds;
struct tm * pTM; time(&nSeconds);
pTM = localtime(&nSeconds); /* 系统日期和时间,格式: yyyymmddHHMMSS */
sprintf(psDateTime, "%04d-%02d-%02d %02d:%02d:%02d",
pTM->tm_year + , pTM->tm_mon + , pTM->tm_mday,
pTM->tm_hour, pTM->tm_min, pTM->tm_sec); return ;
} // 测试代码
int main()
{
int ret;
char DateTime[_DATETIME_SIZE]; memset(DateTime, , sizeof(DateTime)); /* 获取系统当前日期 */
ret = GetDate(DateTime);
if(ret == )
printf("The Local date is %s\n", DateTime);
else
perror("GetDate error!"); memset(DateTime, , sizeof(DateTime));
/* 获取当前系统时间 */
ret = GetTime(DateTime);
if(ret == )
printf("The Local time is %s\n", DateTime);
else
perror("GetTime error!"); memset(DateTime, , sizeof(DateTime));
/* 获取系统当前日期时间 */
ret = GetDateTime(DateTime);
if(ret == )
printf("The Local date and time is %s\n", DateTime);
else
perror("GetDateTime error!"); return ;
}

运行结果

4.  后记

诫子书 - 诸葛亮

夫君子之行,静以修身,俭以养德。

非淡泊无以明志,非宁静无以致远。

夫学须静也,才须学也,非学无以广才,非志无以成学。

淫慢则不能励精,险躁则不能冶性。

年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!

Linux C 中获取local日期和时间 time()&localtime()函数的更多相关文章

  1. ACCESS中如何比较日期和时间,使用DateDiff函数

    DateDiff,语法如下:DateDiff( 间隔字符, 日期1, 日期2 [,firstdayofweek[, firstweekofyear]])一般使用 DateDiff( 间隔字符, 日期1 ...

  2. SqlServer中日期和时间数据类型及函数 【转】

    来源:http://blog.csdn.net/royalwzy/article/details/6446075 日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型. 数据 ...

  3. java 8中新的日期和时间API

    java 8中新的日期和时间API 使用LocalDate和LocalTime LocalDate的实例是一个不可变对象,它只提供了简单的日期,并不含当天的时间信息.另外,它也不附带任何与时区相关的信 ...

  4. bat 获取系统日期,时间,并去掉时间小时前面的空格和时间后面的空格

    @echo off rem BAT获取系统日期,时间,并去掉时间小时前面的空格和时间后面的空格 echo *** %DATE% echo *** %TIME% set THISDATE=%DATE:~ ...

  5. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;

    学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...

  6. java中获取系统的当前时间

    转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输出: import java ...

  7. 从Linux内核中获取真随机数【转】

    转自:http://www.cnblogs.com/bigship/archive/2010/04/04/1704228.html 内核随机数产生器 Linux内核实现了一个随机数产生器,从理论上说这 ...

  8. 从Linux内核中获取真随机数

    内核随机数产生器 Linux内核实现了一个随机数产生器,从理论上说这个随机数产生器产生的是真随机数.与标准C库中的rand(),srand()产生的伪随机数不同,尽管伪随机数带有一定的随机特征,但这些 ...

  9. matlab中datest() 将日期和时间转换为字符串格式

    来源:https://ww2.mathworks.cn/help/matlab/ref/datestr.html?searchHighlight=datestr&s_tid=doc_srcht ...

随机推荐

  1. C语言优先级

    条件1 && 条件2,如果条件1为假,则条件2语句不执行,因为能判断该表达式为假 条件1 || 条件2,如果条件1为真,则条件2语句不执行,因为能判断该表达式为真 优先级 运算符 名称 ...

  2. 02_Kafka单节点实践

    1.实践场景 开始前的准备条件: 1) 确认各个节点的jdk版本,将jdk升级到和kafka配套的版本(解压既完成安装,修改/etc/profile下的JAVA_HOME,source /etc/pr ...

  3. Kafka 及 PyKafka 的使用

    1. Kafka 1. 简介 Kafka 是一种分布式的.分区的.多副本的基于发布/订阅的消息系统.它是通过 zookeeper 进行协调,常见可以用于 web/nginx 日志.访问日志.消息服务等 ...

  4. Cocos2d-x学习笔记(十二)3D特效

    特效类即是GridAction类,其实就是基于网格的3D动作类.需开启OpenGL的深度缓冲,否则容易3D失真. 下边是一个snippet,创建网格对象,并将其添加到当前layer:同时,将进行3D特 ...

  5. MongoDB(课时30 $group)

    3.7.5.聚合框架(核心) MapReduce功能强大,但是它的复杂度和功能一样强大,那么我们需要MapReduce的功能,使用聚合框架中的聚合函数:aggregate(). 3.7.5.1.gro ...

  6. BIOS和CMOS【转载】

    在我们的电脑中,都有一块黑色的小芯片.但是请千万不要小看它,如果它损坏或者数据错误乱套的话,恭喜,如果不会“救回”这个小芯片,那么这台电脑可以挂闲鱼卖零件了……这个小芯片是什么呢?对,它就是BIOS芯 ...

  7. Lua面向对象 --- 多态

    多态,简单的理解就是事物的多种形态.专业的术语说就是:同一个实现接口,使用不同的实例而执行不同的操作. 工程结构: BaseRoom.lua: BaseRoom = {} function BaseR ...

  8. 【备档】客户端自动化(主Android Appium + python

    之前做分享写的文档,备档~ 0.移动客户端自动化简介 客户端自动化测试的本质 定位对象 · 操作对象 · 校验对象 对象的定位应该是自动化测试的核心,要想操作.校验一个对象,首先应该识别这个对象. 一 ...

  9. Python面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  10. ubuntu mysql主从库的搭建

    1,首先我们要确定一个从库一个主库,紧记从库只能读取不能有其他的操作,如果操作写那主从就失效了,那就看看我们这么搭建主从吧! 2. 环境:Ubuntu,Mysql (主从的数据库版本必须保持一致) 主 ...