Linux时间相关函数

相关文件:

/etc/localtime  本地时间二级制文件

/etc/sysconfig/clock  时区配置文件

/usr/share/zoneinfo  存储各个时区的二进制文件

Linux时间相关函数

时间修改方式一:

1、date -s "具体时间"

2、clock -w 写入CMOS

时间修改方式二:

1、通过tzselect设置时区

2、rm /erc/localtime

3、ln -sf /usr/share/zoneinfo/Asia/Chongqing   /etc/localtime

时间修改方式三:

1、修改/etc/sysconfig/clock

2、rm /erc/localtime

3、ln -sf /usr/share/zoneinfo/Asia/Chongqing   /etc/localtime

 

date常用选项:

date -u 查看UTC(时间统计时间)

date -s 设置系统时间,设置好后需要clock -w

date +"特定格式输出时间"

%H 小时(00..23)
%I 小时(01..12)
%k 小时(0..23)
%l 小时(1..12)
%M 分(00..59)
%p 显示出AM或PM
%r 时间(hh:mm:ss AM或PM),12小时
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 秒(00..59)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 时区 日期域
%a 星期几的简称( Sun..Sat)
%A 星期几的全称( Sunday..Saturday)
%b 月的简称(Jan..Dec)
%B 月的全称(Januaryda..December)
%c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
%d 一个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j 一年的第几天(001..366)
%m 月(01..12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00..53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年的最后两个数字( 1999则是99)
%Y 年(例如:1970,1996等)

举例:

date +"%Y-%m-%d %H:%M:%S"

2014-12-29 15:19:27

 

时间函数:包含头文件time.h,住clock_t 与 time_t都是long int 类型

clock_t clock();  //计时器,用于求从程序开始到该函数调用的时间(秒) = clock()/CLOCKS_PER_SEC

time_t time(time_t * temp);  //求本地时间戳,若参数为NULL,则返回时间戳。若有参数则结果存储在temp所指向的变量中。

char * ctime(time_t * temp); //将时间戳转化为可读的字符串

struct tm * gmtime(time_t *temp);  //将时间戳转化为UTC时间,保存到tm结构体中

struct tm * localtime(time_t * temp); //将时间戳转化为本地时间,保存到tm结构体中

char * asctime(struct tm * temp) ; //将tm结构体转化为可读的字符串

strftime(char * buf , int bufsize , "格式化字符串", struct tm * temp); //提取tm结构体中的相关选项,并按照格式化字符串输出到buf中去

#include <stdio.h>

#include <time.h>

#include <string.h>



void main(){

    int count = 0;

    while(count<9999999){

        count++;

    }

    clock_t t1 = clock();

    printf("clock()/CLOCKS_PER_SEC:%f\n",(float)t1/CLOCKS_PER_SEC);



    time_t t2 = time(NULL);

    printf("time():%ld\n",t2);

    printf("ctime:%s",ctime(&t2));

    printf("gmtime:%s",asctime(gmtime(&t2)));

    printf("localtime:%s",asctime(localtime(&t2)));

    char buf[100];

    memset(buf,0,100);

    strftime(buf,100,"strftime:%Y-%m-%d %H:%M:%S\n",localtime(&t2));

    printf(buf);

}

clock()/CLOCKS_PER_SEC:0.040000
time():1419928685
ctime:Tue Dec 30 16:38:05 2014
gmtime:Tue Dec 30 08:38:05 2014
localtime:Tue Dec 30 16:38:05 2014
strftime:2014-12-30 16-38-05

 

你可能感兴趣的:(linux)