C语言输出日期,c语言中日期格式化_科技资讯_七洗推广网

C语言输出日期,c语言中日期格式化

#科技资讯 发布时间: 2023-08-27

例程

其实函数就那么几个,具体方法也不少,以下列出几种:

#include \”stdio.h\”#include \”sys/time.h\” char timestr[128]=\”\”;time_t now;//方法1// now = time( 0 );int main(){//设置时区(不一定有用)setenv(\”TZ\”, \”GMT-8\”, 1); tzset(); //方法1 time(&now); strftime(timestr, 128, \”%a, %d %b %Y %H:%M:%S GMT\”, localtime(&now)); printf(\”strftime(fmt localtime(&now))Date&Time:%s\\r\\n\”, timestr); //方法2 struct tm *p; now = time( 0 ); p=gmtime(&now); //无时区信息 strftime(timestr, 128, \”%Y-%m-%d %H:%M:%S\”, p); printf(\”strftime(fmt gmtime(&now))Date&Time:%s\\r\\n\”, timestr); printf(\”p->tm_hour:p->tm_min:p->tm_sec >>> %02d:%02d:%02d\\r\\n\”,p->tm_hour,p->tm_min,p->tm_sec); //方法3 struct tm timeinfo; time_t t = time( 0 ); timeinfo = *localtime(&now); printf(\”Date&Time:%04d-%02d-%02d,%02d:%02d:%02d\”,1900+(timeinfo.tm_year), (timeinfo.tm_mon)+1,timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec); //方法4 struct timeval tv_now; gettimeofday(&tv_now, NULL); localtime_r(&tv_now.tv_sec, &timeinfo); printf(\”Date&Time:%04d-%02d-%02d,%02d:%02d:%02d\”,1900+(timeinfo.tm_year), (timeinfo.tm_mon)+1,timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);//如果需要时区转换,那么uint16_t offset = 28800; //8*60*60 即8小时对应的秒数time_t localtimestamp = now + offset;} struct timeval结构体

struct timeval结构体在time.h中的定义为:

struct timespec { time_t tv_sec; /* Seconds */ long tv_nsec; /* Nanoseconds */};

其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒数。

strftime()函数

获取日期不同格式的最快方法是使用strftime()函数

它根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。

声明

下面是 strftime() 函数的声明。

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 参数 str – 这是指向目标数组的指针,用来复制产生的 C 字符串。maxsize – 这是被复制到 str 的最大字符数。format – 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值。格式说明符是: 说明符替换为实例%a缩写的星期几名称Sun%A完整的星期几名称Sunday%b缩写的月份名称Mar%B完整的月份名称March%c日期和时间表示法Sun Aug 19 02:56:02 2012%d一月中的第几天(01-31)19%H24 小时格式的小时(00-23)14%I12 小时格式的小时(01-12)05%j一年中的第几天(001-366)231%m十进制数表示的月份(01-12)08%M分(00-59)55%pAM 或 PM 名称PM%S秒(00-61)02%U一年中的第几周,以第一个星期日作为第一周的第一天(00-53)33%w十进制数表示的星期几,星期日表示为 0(0-6)4%W一年中的第几周,以第一个星期一作为第一周的第一天(00-53)34%x日期表示法08/19/12%X时间表示法02:50:06%y年份,最后两个数字(00-99)01%Y年份2012%Z时区的名称或缩写CDT%%一个 % 符号%timeptr – 这是指向 tm 结构的指针,该结构包含了一个被分解为以下各部分的日历时间(如上文例程中的struct tm timeinfo): struct tm { int tm_sec; /* 秒,范围从 0 到 59 */ int tm_min; /* 分,范围从 0 到 59 */ int tm_hour; /* 小时,范围从 0 到 23 */ int tm_mday; /* 一月中的第几天,范围从 1 到 31 */ int tm_mon; /* 月份,范围从 0 到 11 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时 */ };

注:

如要使用struct timeval 结构体 ,那么需要包含sys/time.h 文件而非time.h

85210708

《C语言输出日期,c语言中日期格式化》来自互联网同行内容,若有侵权,请联系我们删除!

科技资讯SEO

上一篇 : 揭秘,kk家族票背后的神秘来源是什么?

下一篇 : 如何成功申请成为手机斗鱼主播?
品牌营销
专业SEO优化
添加左侧专家微信
获取产品详细报价方案