红联Linux门户
Linux帮助

linux中的Time和Date

发布时间:2006-11-07 01:10:24来源:红联作者:novemberfa
date
显示当前时间

clock
获取并操纵时间

cal
显示本月日历

hwclock
查询并设置硬件时钟(RTC)

Unix时间值
1. 日历时间 自1970-1-1:00:00:00以来所经过的秒数累计值

2. 进程时间 也成为cpu时间,以时钟滴答计算。每秒中为50、60、100个滴答。系统基本类型为clock_t保存这种时间值。 Posix定义为 CLK_TCK,用其说明每秒滴答数。

三个进程时间:时钟时间,用户cpu时间,系统cpu时间。

timeval结构
#include

struct timeval{

time_t tv_sec;

susecond_t tv_usec; //当前妙内的微妙数

};


tm结构
struct tm{

int tm_sec;

int tm_min;

int tm_hour;

int tm_mday;

int tm_mon;

int tm_year;

int tm_wday;

int tm_yday;

int tm_isdst;

}

tms结构
保存着一个进程及其子进程使用的cpu时间

struct tms{

clock_t tms_utime;

clock_t tms_stime;

clock_t tms_cutime;

clock_t tms_cstime;

}


timer_struct结构
#include

struct timer_struct{

unsigned long expires; //定时器被激活的时刻

void (*fn)(void); //定时器激活后的处理函数

}

文件的时间
st_atime 文件数据的最后存取时间

st_mtime 文件数据的最后修改时间

st_ctime i节点状态的最后更改时间


utime函数
更改文件的存取和修改时间

int utime(const char pathname, const struct utimbuf *times) // return value 0 or -1

times 为空指针,存取和修改时间设置为当前时间

struct utimbuf{

time_t actime;

time_t modtime;

}

time函数
日历时间 返回自1970-1-1:00:00:00以来经过的秒数累计值

#include

time_t time(time_t *calptr)

time_t now;

time(&now);

printf("now time is %d\n",now);


times函数
返回自系统自举后经过的时钟滴答数

#include

clock_t times(struct tms *buf);

clock_t start,end;

struct tms t_start,t_end;

start(=times(&t_start);

end=times(&t_end);

localtime函数
将日历时间变换成本地时间,考虑到本地时区和夏令时标志。

#include

struct tm *localtime(const time_t * calptr);


gmtime函数
将日历时间变换成国际标准时间的年月日分秒

#include

struct tm *gmtime(const time_t *calptr);

time_t time1;

struct tm *time2;

time(&time1);

//time2=gmtime(&time1);

time2=localtime(&time1);

printf("%d-%d-%d %d:%d:%d\n",time2->tm_year,time2->tm_mon,time2->tm_mday,\

time2->tm_hour,time2->tm_min,time2->tm_sec);

mktime函数
以本地时间的年月日为参数,将其变换成time_t值

#include

time_t mktime(struct tm *tmptr);

……

time_t time1;

time_t time3;

struct tm *time2;

time(&time1);

//time2=gmtime(&time1);

time2=localtime(&time1);

time3=mktime(time2);


asctime函数
产生形式的26字节字符串,参数指向年月日等字符串的指针。与date命令输出形式类似

#include

char *asctime(const struct tm *tmptr);

ctime函数
产生形式的26字节字符串,参数指向日历时间的指针。

#include

char *ctime(const time_t *calptr);

……

time_t time1;

time_t time3;

struct tm *time2;

time(&time1);

//time2=gmtime(&time1);

time2=localtime(&time1);

time3=mktime(time2);

char strasctime[30],strctime[30];

strcpy(strasctime,asctime(time2));

printf(“time: %s\n”, strasctime);

strcpy(strctime,ctime(&time3));

printf(“time: %s\n”, strctime);


strftime函数
格式化时间输出

#include

size_t strftime(char *buf,size_t maxsize,const char *format,const struct tm *tmptr);

……

time_t time1;

struct tm *time2;

time(&time1);

time2=gmtime(&time1);

//time2=localtime(&time1);

char buf[100];

strftime(buf,100,"%x %X \n %Y %m %d %H %M %S \n%c",time2);

printf(“time: %s\n”, buf);
文章评论

共有 2 条评论

  1. crossbitter 于 2011-09-26 17:29:18发表:

    (q):s沙发无解。。

  2. wokanhaoziji 于 2011-09-26 17:17:34发表:

    oh is very good please continue