开源空间:关于Linux下时间编程的问题

时间:2008-03-16 18:57:20   来源:  作者:  点击:次  出处:技术无忧
关键字:linux 编程 时间


3.文字时间格式函数


char * asctime(struct tm *tp);

char * ctime(struct tm *tp);

这两个函数都转换时间格式为标准UNIX时间格式。

Mon May 3 08:23:35 1999


ctime一率使用当地时间,asctime则用tm结构内的timezone资讯来表示。


size_t strftime(char *str,size_t max,char *fmt,struct tm *tp);

strftime有点像sprintf,其格式由fmt来指定。


%a : 本第几天名称,缩写。

%A : 本第几天名称,全称。

%b : 月份名称,缩写。

%B : 月份名称,全称。

%c : 与ctime/asctime格式相同。

%d : 本月第几日名称,由零算起。

%H : 当天第几个小时,24小时制,由零算起。

%I : 当天第几个小时,12小时制,由零算起。

%j : 当年第几天,由零算起。

%m : 当年第几月,由零算起。

%M : 该小时的第几分,由零算起。

%p : AM或PM。

%S : 该分钟的第几秒,由零算起。

%U : 当年第几,由第一个日开始计算。

%W : 当年第几,由第一个一开始计算。

%w : 当第几日,由零算起。

%x : 当地日期。

%X : 当地时间。

%y : 两位数的年份。

%Y : 四位数的年份。

%Z : 时区名称的缩写。

%% : %符号。


char * strptime(char *s,char *fmt,struct tm *tp);

如同scanf一样,解译字串成为tm格式。


%h : 与%b及%B同。

%c : 读取%x及%X格式。

%C : 读取%C格式。

%e : 与%d同。

%D : 读取%m/%d/%y格式。

%k : 与%H同。

%l : 与%I同。

%r : 读取"%I:%M:%S %p"格式。

%R : 读取"%H:%M"格式。

%T : 读取"%H:%M:%S"格式。

%y : 读取两位数年份。

%Y : 读取四位数年份。


下面举一个小例子,说明如何获得系统当前时间:

time_t now;

struct tm *timenow;

char strtemp[255];


time(&now);

timenow = localtime(&now);

printf("recent time is : %s \n", asctime(timenow))

技术无忧.com


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面