函数:strftime()
返回值的字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间本地格式化返回。月份或者星期名称随着本地语系配置 setlocale() 的不同而改变。
返回的字符串可以依下列的格式而定:
- %a 星期几的缩写。
- %A 星期几的全名。
- %b 月份名称的缩写。
- %B 月份名称的全名。
- %c 本地端日期时间较佳表示字符串。
- %d 用数字表示本月的第几天 (范围为 00 至 31)。
- %H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
- %I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
- %j 以数字表示当年度的第几天 (范围为 001 至 366)。
- %m 月份的数字 (范围由 1 至 12)。
- %M 分钟。
- %p 以 'AM' 或 'PM' 表示本地端时间。
- %S 秒数。
- %U 数字表示为本年度的第几周,第一个星期由第一个周日开始。
- %W 数字表示为本年度的第几周,第一个星期由第一个周一开始。
- %w 用数字表示本周的第几天 ( 0 为周日)。
- %x 不含时间的日期表示法。
- %X 不含日期的时间表示法。
- %y 二位数字表示年份 (范围由 00 至 99)。
- %Y 完整的年份数字表示,即四位数。
- %Z 时区或名称缩写。
- %% % 字符。
#include "time.h"
#include "stdio.h"
int main(void)
{
struct tm *ptr;
time_t lt;
char str[80];
lt=time(NULL);
ptr=localtime(<);
strftime(str,100,"It is now %I %p\n\n",ptr);
printf(str);
struct tm *newtime;
char tmpbuf[128];
time_t lt1=time(NULL);
newtime=localtime(<1);
strftime( tmpbuf, 128, "Today is %A, day %d of %B in the year %Y.\n", newtime);
printf(tmpbuf);
getchar();
return 0;
}