C---格式化日期函数


结构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;
};
int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒
int tm_min 代表目前分数,范围0-59
int tm_hour 从午夜算起的时数,范围为0-23
int tm_mday 目前月份的日数,范围01-31
int tm_mon 代表目前月份,从一月算起,范围从0-11
int tm_year 从1900 年算起至今的年数
int tm_wday 一星期的日数,从星期一算起,范围为0-6
int tm_yday 从今年1月1日算起至今的天数,范围为0-365
int tm_isdst 日光节约时间的旗标


time_t time(time_t *t);
time() 函数:返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。
主要用来获取当前的系统时间,返回的结果是一个time_t类型,其值表示从UTC(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime函数将time_t所表示的UTC时间转换为本地时间(我们是+8区,比UTC多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。

char *ctime(const time_t *time);
功 能: 把日期和时间转换为字符串,输出格式如下:
           Thu Nov 19 15:54:39
程序例:
1
2
3
4
5
6
7
8
9
#include<cstdio>
#include<ctime>
intmain( void )
{
time_t  t;
t= time (&t);
printf ( "Today'sdateandtime:%s\n" , ctime (&t));
return  0;
}


char* asctime (const struct tm * timeptr).
把timeptr指向的tm结构体中储存的时间转换为字符串字符串格式返格式为:回,Www Mmm dd hh:mm:ss yyyy。其中Www为星期;Mmm为月份;dd为日;hh为时;mm为分;ss为秒;yyyy为年份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* asctime example */
#include <stdio.h>      /* printf */
#include <time.h>       /* time_t, struct tm, time, localtime, asctime */
 
int  main ()
{
     time_t  rawtime;
     struct  tm  * timeinfo;
 
     time  ( &rawtime );
     timeinfo =  localtime  ( &rawtime );
     printf  "The current date/time is: %s" asctime  (timeinfo) );
 
     return  0;
}
函数范例的输出:
1
The current date/time is: Wed Feb 13 15:46:11 2013

struct tm *localtime(const time_t *clock);
此函数获得的tm 结构体的时间是 日历时间

struct tm *gmtime(const time_t *time);
功能:把日期和时间转换为 格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。

其中asctime ()与ctime()都是可以把时间转为 Thu Nov 19 15:54:39 格式的,不同的是asctime ()是转为ASCII,且函数参数为struct *tm结构体的,一般用localtime()或gmtime()函数转为 tm 格式;ctime()是转为字符串,且参数是time_t。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值