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. basename、dirname、alias、date

    basename 此命令用于打印目录或者文件的基本名称. basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称. basename ( ...

  2. C# 实现简单的 Heap 堆(二叉堆)

    如题,C#  实现简单的二叉堆的 Push() 和 Pop(), 如有不足欢迎指正. 另外,在C#中使用 Heap 的相似功能可以考虑使用:Priority Queues,SortedDictiona ...

  3. POJ 1222 EXTENDED LIGHTS OUT(高斯消元解XOR方程组)

    http://poj.org/problem?id=1222 题意:现在有5*6的开关,1表示亮,0表示灭,按下一个开关后,它上下左右的灯泡会改变亮灭状态,要怎么按使得灯泡全部处于灭状态,输出方案,1 ...

  4. BZOJ 1189 【HNOI2007】 紧急疏散evacuate

    题目链接:紧急疏散 这薄脊题我代码不知不觉就写长了…… 这道题二分答案显然,然后用最大流\(check\)即可.设当前二分的答案为\(x\),那么把每扇门拆成\(x\)个点,第\(i\)个代表在第\( ...

  5. [ios]如何在ARC代码中混编非ARC代码

    参考 :http://blog.sina.com.cn/s/blog_b595ce9e0101nvvn.html “ios中如果arc和非arc文件混编,可以在build parses中指定compi ...

  6. 理解Fragment的生命周期

    与活动类似,Fragment也有自己的生命周期.理解Fragment的生命周期有助于在Fragment销毁时能恰当地保存其实例,然后在重新创建时能够将其恢复至之前的状态. 下面的“试一试”将研究Fra ...

  7. 【Jmeter】Linux(Mac)上使用最新版本Jmeter(5.0)做性能测试

    本文我们一起来学习在Linux(Mac)上利用Jmeter进行性能测试并生成测试报告的方法. 环境准备 JDK 访问这个地址 [JDK11.01],根据实际环境下载一个JDK. Jmeter Jmet ...

  8. 使用cocos创建的项目,如何进行源码调试?

    环境cocos3.10,里面包含了cocos2dx 3.10引擎.但是用cocos创建出来的项目,使用的lib和dll是文件夹Cocos\Cocos2d-x\cocos2d-x-3.10\prebui ...

  9. 3.3 x86指令简介

    计算机组成 3 指令系统体系结构 3.3 x86指令简介 x86指令种类繁多,数量庞大.在这一节我们将会学习x86指令的分类,并分析其中最为基础的一部分指令. 通常一个指令系统主要包括这几类指令.运算 ...

  10. Jersey 2.x 运行项目

    现在我们已经有可以可以运行的项目了,让我们队这个项目进行一些测试吧. 你需要运行下面的一些命令行: mvn clean test 这个命令将会对项目进行编译后运行单元测试. 你应该会看到和下面类似的输 ...