例程

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

#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();//方法1time(&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);//方法2struct 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);//方法3struct 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);//方法4struct 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
%H 24 小时格式的小时(00-23) 14
%I 12 小时格式的小时(01-12) 05
%j 一年中的第几天(001-366) 231
%m 十进制数表示的月份(01-12) 08
%M 分(00-59) 55
%p AM 或 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

C语言格式化输出日期时间相关推荐

  1. javascript两行代码按指定格式输出日期时间

    javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) {var z ={y:x.getFullYear(),M:x.getMonth()+1, ...

  2. 萌新的Python练习菜鸟100例(十)暂停一秒输出,并格式化输出当前时间

    题目: 题目:暂停一秒输出,并格式化当前时间 分析: 主要是练习输出本机时间 · 使用Python time模块 · 再使用time.sleep()函数,时间为秒,可以自由设置 · 格式化输出当前时间 ...

  3. c语言直接输出PDF,C语言格式化输出总结.pdf

    C C 语言格式化输出总结语言格式化输出总结 一 一 printf printf 函数函数9 S4 Y N4 r S V0 I w printf 函数是格式化输出函数 一般用于向标准输出设备按规定格式 ...

  4. Go语言格式化输出(fmt)

    Go语言格式化输出 在Go语言中格式化输出通常使用 fmt 包,通用的输出格式如下表所示: 表:通用输出格式 输出格式 输出内容 %v 值的默认格式表示 %+v 类似 %v,但输出结构体时会添加字段名 ...

  5. c语言中字符串格式输出有负号,C语言格式化输出

    C语言格式化输出 printf()格式化输出详解 本文来 自:http://www.kuqin.com/language/20080420/7060.html printf的格式控制的完整格式: % ...

  6. Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类

    在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...

  7. java规定日期格式输出_Java格式化输出日期百分比时间等

    Java格式化输出 Java的格式化输出等同于String.Format,与C有很大的相似,比如 System.out.printf("%8.2f", x); 在printf中,可 ...

  8. c语言编写万年历程序显示时间,C语言格式化输出日历(万年历)

    C语言控制台输出日历.先输入年份,然后输入每行显示的月份个数. 如图: 代码如下: #include int main(void) { int a, i, j, n, k, t, w, x, y, z ...

  9. C#格式化字符串,日期,时间,货币

    时间格式化 有时候我们要对时间进行转换,达到不同的显示效果  默认格式为:2005-6-6 14:33:34  如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢  我们要用 ...

  10. linux如何更改服务器时间格式,Linux中date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]...[+格式] 或:date [-u|--utc|--universal] ...

最新文章

  1. int *p=NULL; *p=9;是错误的!
  2. matlab中的lsqcurvefit使用
  3. 最不适合做数据分析的6种性格,看看你占了几个?
  4. mysql-8.0.16-winx64详细安装教程
  5. paip.代码生成器数据源格式最佳实践
  6. esp32在ubuntu搭建环境,clone esp-idf部分库clone失败
  7. 安川e1000中文说明书_安川E1000变频器维修故障代码说明书
  8. 【中科三方】什么是云解析DNS?云解析DNS有必要购买吗?
  9. pytorch错误——Torch not compiled with CUDA enabled
  10. 【perl计算基因在基因组上的距离】
  11. php伪装图片,GIF 图片伪装技术
  12. 关于AndroBench在Android 10以后性能衰减的问题分析
  13. Linux下lsb_release命令的安装教程
  14. java窗口如何定时关闭_[Java教程]【温故而知新】Javascript窗口效果 (全屏显示窗口、定时关闭窗口)_星空网...
  15. 全网页都变灰了,这是怎么实现的?
  16. 安装JBuilder2005问题
  17. windows7系统Prolific USB-to-Serial Comm Port问题
  18. Response重定向
  19. 量化投资学习-15:散户与庄家共赢策略之价值长线策略
  20. linux--发展史与环境

热门文章

  1. Tomcat修改端口号图文详解
  2. steam邮箱服务器设置,Steam游戏通用进服教程
  3. firefox 3.0 beta 1 试用与下载
  4. 双层PDFmaker
  5. 一款 Java 开源的 Spring Boot 即时通讯 IM 聊天系统(源码自取)
  6. cad中tk什么意思_cad绘图tk命令技巧
  7. 蛋糕店选址该注意什么,如何了解客群画像和竞品情况
  8. 日常笔记-snownlp情感分析计算情感得分
  9. P12 | N-path filter (ISSCC2021 JSSC-2011-03)
  10. Hookswork补单逻辑说明——多帐户跨平台MT4跟单软件