最新消息:发现真没时间折腾VPS,最近又换了个空间。呵呵

C语言的当前时间取得和时间格式化

在C语言里,要取得当前时间,必须引入头文件time.h。然后用time()来取得当前时间,然后再用localtime()来转化为本地时间,之后再用strftime()来格式化输出。
注意,这种方法取得时间的最小单位是秒,如果要取得更小单位的时间,要用其它方法。

各函数在time.h里的定义

三个函数的定义如下:

C
time_t time(time_t *_Time);
struct tm * localtime(const time_t *_Time)
size_t strftime(char * _Buf,size_t _SizeInBytes,const char * _Format,const struct tm * _Tm);

strftime函数的Format的参数

%a    星期几的简写
%A    星期几的全称
%b    月分的简写
%B    月份的全称
%c    标准的日期的时间串
%C    年份的后两位数字
%d    十进制表示的每月的第几天
%D    月/天/年
%e    在两字符域中,十进制表示的每月的第几天
%F    年-月-日
%g    年份的后两位数字,使用基于周的年
%G    年分,使用基于周的年
%h    简写的月份名
%H    24小时制的小时
%I    12小时制的小时
%j    十进制表示的每年的第几天
%m    十进制表示的月份
%M    十时制表示的分钟数
%n    新行符
%p    本地的AM或PM的等价显示
%r    12小时的时间
%R    显示小时和分钟:hh:mm
%S    十进制的秒数
%t    水平制表符
%T    显示时分秒:hh:mm:ss
%u    每周的第几天,星期一为第一天(值从0到6,星期一为0)
%U    第年的第几周,把星期日做为第一天(值从0到53)
%V    每年的第几周,使用基于周的年
%w    十进制表示的星期几(值从0到6,星期天为0)
%W    每年的第几周,把星期一做为第一天(值从0到53)
%x    标准的日期串
%X    标准的时间串
%y    不带世纪的十进制年份(值从0到99)
%Y    带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%%    百分号

示例代码

比如取得当前时间的 YYYY/MM/DD HH:mm:ss的格式,其代码如下:

C
#include <stdio.h>
#include <time.h>

int main(int argc, char const *argv[])
{
    time_t nowTime;
    struct tm *nowLocaltime;
    char formatedTime[80];

    nowTime = time(NULL);
    nowLocaltime = localtime(&nowTime);
    strftime(formatedTime, sizeof(formatedTime), "%Y/%m/%d %H:%M:%S", nowLocaltime);

    printf("%s\n", formatedTime);

    return 0;
}

参考地址:http://www.cnblogs.com/caolisong/archive/2007/04/11/709732.html

转载请注明:宇托的狗窝 » C语言的当前时间取得和时间格式化

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址