strftime

strftime是C语言标准库中用来格式化输出时间的的函数。Ubuntu自带的manual手册说法如下,截图没有截全,需要更详细信息的自行查看相关的内容。下面是strftime的用法

示例代码如下

#include<stdio.h>
#include<time.h>#define print(s1, s2,s3) \printf("%-20s%-30s%s\n",s1, s2,s3);int main()
{time_t rawtime;struct tm* timeinfo;char timE[80];/* time(&rawtime); */rawtime = 31507200;timeinfo=localtime(&rawtime);strftime(timE,80,"%F %X",timeinfo);printf("时间为:%s\n",timE);print( "格式控制符", "输出结果", "格式控制说明" );strftime(timE,80,"%Y",timeinfo);print( "%Y", timE,"年" );strftime(timE,80,"%m",timeinfo);print( "%m", timE,"月" );strftime(timE,80,"%d",timeinfo);print( "%d", timE,"日" );strftime(timE,80,"%H",timeinfo);print( "%H", timE,"时" );strftime(timE,80,"%M",timeinfo);print( "%M", timE,"分" );strftime(timE,80,"%S",timeinfo);print( "%S", timE,"秒" );strftime(timE,80,"%a",timeinfo);print( "%a", timE,"根据当前区域设置,一周中某一天的缩写名称" );strftime(timE,80,"%A",timeinfo);print( "%A", timE,"根据当前区域设置显示一周中某一天的全名" );strftime(timE,80,"%b",timeinfo);print( "%b", timE,"根据当前区域设置的缩写月份名称" );strftime(timE,80,"%B",timeinfo);print( "%B", timE,"根据当前区域设置的完整月份名称" );strftime(timE,80,"%c",timeinfo);print( "%c", timE,"当前区域设置的首选日期和时间表示形式" );strftime(timE,80,"%C",timeinfo);print( "%C", timE,"世纪数(年/100)为2位整数" );strftime(timE,80,"%d",timeinfo);print( "%d", timE,"以十进制数字表示的月份的日期(范围为01到31)。" );strftime(timE,80,"%D",timeinfo);print( "%D", timE,"相当于%m/%D/%y。" );print( "", "","(Yecch仅适用于美国人。美国人应注意,在其他国家%d/%m/%y相当普遍。" );print( "", "","这意味着在国际背景下,这种格式是模糊的,不应使用。)" );strftime(timE,80,"%e",timeinfo);print( "%e", timE,"与%d类似,是一个十进制数字,但前导零被空格替换。" );/* strftime(timE,80,"%E",timeinfo); *//* print( "%E", timE,"与%d类似,是一个十进制数字,但前导零被空格替换。" ); */strftime(timE,80,"%F",timeinfo);print( "%F", timE, "相当于%Y-%m-%d(ISO 8601日期格式)。(C99)使用" );strftime(timE,80,"%G",timeinfo);print( "%G", timE, "ISO 8601基于周的年份(见注释),世纪为小数。" );print( "", "", "与ISO周数对应的4位年份(见%V)。它的格式和值与%Y相同,只是如果ISO周数属于上一年或下一年,则使用该年。" );print( "", "", "(TZ)(根据tm年、tm日和tm日计算)" );strftime(timE,80,"%g",timeinfo);print( "%g", timE, "类似于%G,但没有世纪,也就是说,有两位数的年份(00–99)。(TZ)(根据tm年、tm日和tm日计算)" );strftime(timE,80,"%h",timeinfo);print( "%h", timE, "相当于%b。" );strftime(timE,80,"%H",timeinfo);print( "%H", timE, "使用24小时时钟(范围为00到23)将小时表示为十进制数字。" );strftime(timE,80,"%I",timeinfo);print( "%I", timE, "使用12小时时钟(范围01至12)将小时作为十进制数字。" );strftime(timE,80,"%j",timeinfo);print( "%j", timE, "以十进制数字表示的一年中的某一天(范围001至366)。" );strftime(timE,80,"%k",timeinfo);print( "%k", timE, "小时(24小时时钟)为十进制数(范围0至23);单个数字前面有一个空格。" );strftime(timE,80,"%I",timeinfo);print( "%I", timE, "小时(12小时时钟)为十进制数字(范围1至12);单个数字前面有一个空格。(另见%I.)" );strftime(timE,80,"%m",timeinfo);print( "%m", timE, "以十进制数字表示月份(范围为01到12)。" );strftime(timE,80,"%M",timeinfo);print( "%M", timE, "以十进制数字表示的分钟(范围为00到59)。" );/* strftime(timE,80,"%O",timeinfo); *//* print( "%O", timE, "修改器:使用替代格式,见下文。" ); */strftime(timE,80,"%p",timeinfo);print( "%p", timE, "根据给定的时间值选择“AM”或“PM”,或当前区域设置的对应字符串。" );strftime(timE,80,"%P",timeinfo);print( "%P", timE, "类似于%P,但小写:“am”或“pm”或相应的字符串对于当前区域设置。" );strftime(timE,80,"%r",timeinfo);print( "%r", timE, "以a.m.或p.m.符号表示的时间。在POSIX语言环境中,这是相当于%I:%M:%S%p。" );strftime(timE,80,"%R",timeinfo);print( "%R", timE, "以24小时表示的时间(%H:%M)。(SU)一个版本包括秒数,请参见下面的%T。" );strftime(timE,80,"%s",timeinfo);print( "%s", timE, "是从纪元开始的秒数,1970-01-01 00:00:00+0000(UTC)。(TZ)(根据mktime(tm)计算)" );strftime(timE,80,"%S",timeinfo);print( "%S", timE, "为十进制数(范围为00到60)。(范围为最多60秒,以允许偶尔的闰秒。)(计算来自tm_sec.)" );strftime(timE,80,"%T",timeinfo);print( "%T", timE, "以24小时表示的时间(%H:%M:%S)。" );strftime(timE,80,"%u",timeinfo);print( "%u", timE, "一周中的某一天为十进制,范围为1到7,星期一为1。另见%w。" );strftime(timE,80,"%U",timeinfo);print( "%U", timE, "当前年份的周数为十进制数,范围为00至53,从第一个星期日开始,为第一周。另请参见%V和%W(根据tm_yday和星期四)" );strftime(timE,80,"%V",timeinfo);print( "%V", timE, "本年度的ISO 8601周数(见注释)作为十进制数,范围为01到53,其中第1周为第一周新年至少有4天。" );strftime(timE,80,"%w",timeinfo);print( "%w", timE, "一周中的某一天为十进制,范围为0到6,星期日为0。 另见%u。" );strftime(timE,80,"%k",timeinfo);print( "%W", timE, "当前年份的周数为十进制数,范围为00至53,从第一个星期一开始为第一周。" );strftime(timE,80,"%x",timeinfo);print( "%x", timE, "当前区域设置的首选日期表示形式,不带时间。" );strftime(timE,80,"%X",timeinfo);print( "%X", timE, "当前l的首选时间表示形式" );char YYYYmmdd[9] = {0};char HHMMSS[10] = {0};strftime(YYYYmmdd,sizeof(YYYYmmdd),"%Y%m%d",timeinfo);strftime(HHMMSS,sizeof(HHMMSS),"%H-%M-%S",timeinfo);return 0;
}

上述程序运行结果如下:

时间为:1971-01-01 00:00:00
格式控制符     输出结果                  格式控制说明
%Y                  1971                          年
%m                  01                            月
%d                  01                            日
%H                  00                            时
%M                  00                            分
%S                  00                            秒
%a                  Fri                           根据当前区域设置,一周中某一天的缩写名称
%A                  Friday                        根据当前区域设置显示一周中某一天的全名
%b                  Jan                           根据当前区域设置的缩写月份名称
%B                  January                       根据当前区域设置的完整月份名称
%c                  Fri Jan  1 00:00:00 1971      当前区域设置的首选日期和时间表示形式
%C                  19                            世纪数(年/100)为2位整数
%d                  01                            以十进制数字表示的月份的日期(范围为01到31)。
%D                  01/01/71                      相当于%m/%D/%y。(Yecch仅适用于美国人。美国人应注意,在其他国家%d/%m/%y相当普遍。这意味着在国际背景下,这种格式是模糊的,不应使用。)
%e                   1                            与%d类似,是一个十进制数字,但前导零被空格替换。
%F                  1971-01-01                    相当于%Y-%m-%d(ISO 8601日期格式)。(C99)使用
%G                  1970                          ISO 8601基于周的年份(见注释),世纪为小数。与ISO周数对应的4位年份(见%V)。它的格式和值与%Y相同,只是如果ISO周数属于上一年或下一年,则使用该年。(TZ)(根据tm年、tm日和tm日计算)
%g                  70                            类似于%G,但没有世纪,也就是说,有两位数的年份(00–99)。(TZ)(根据tm年、tm日和tm日计算)
%h                  Jan                           相当于%b。
%H                  00                            使用24小时时钟(范围为00到23)将小时表示为十进制数字。
%I                  12                            使用12小时时钟(范围01至12)将小时作为十进制数字。
%j                  001                           以十进制数字表示的一年中的某一天(范围001至366)。
%k                   0                            小时(24小时时钟)为十进制数(范围0至23);单个数字前面有一个空格。
%I                  12                            小时(12小时时钟)为十进制数字(范围1至12);单个数字前面有一个空格。(另见%I.)
%m                  01                            以十进制数字表示月份(范围为01到12)。
%M                  00                            以十进制数字表示的分钟(范围为00到59)。
%p                  AM                            根据给定的时间值选择“AM”或“PM”,或当前区域设置的对应字符串。
%P                  am                            类似于%P,但小写:“am”或“pm”或相应的字符串对于当前区域设置。
%r                  12:00:00 AM                   以a.m.或p.m.符号表示的时间。在POSIX语言环境中,这是相当于%I:%M:%S%p。
%R                  00:00                         以24小时表示的时间(%H:%M)。(SU)一个版本包括秒数,请参见下面的%T。
%s                  31507200                      是从纪元开始的秒数,1970-01-01 00:00:00+0000(UTC)。(TZ)(根据mktime(tm)计算)
%S                  00                            为十进制数(范围为00到60)。(范围为最多60秒,以允许偶尔的闰秒。)(计算来自tm_sec.)
%T                  00:00:00                      以24小时表示的时间(%H:%M:%S)。
%u                  5                             一周中的某一天为十进制,范围为1到7,星期一为1。另见%w。
%U                  00                            当前年份的周数为十进制数,范围为00至53,从第一个星期日开始,为第一周。另请参见%V和%W(根据tm_yday和星期四)
%V                  53                            本年度的ISO 8601周数(见注释)作为十进制数,范围为01到53,其中第1周为第一周新年至少有4天。
%w                  5                             一周中的某一天为十进制,范围为0到6,星期日为0。 另见%u。
%W                   0                            当前年份的周数为十进制数,范围为00至53,从第一个星期一开始为第一周。
%x                  01/01/71                      当前区域设置的首选日期表示形式,不带时间。
%X                  00:00:00                      当前l的首选时间表示形式

strftime()函数的使用方法相关推荐

  1. python的strftime函数_Python简单格式化时间的方法【strftime函数】

    本文实例讲述了Python简单格式化时间的方法,分享给大家供大家参考,具体如下: walker经常用到当前时间和相对时间,用来统计程序执行的效率,简单记一下,便于copy. >>> ...

  2. python日期格式化到毫秒_Python简单格式化时间的方法【strftime函数】 python 格式化日期到毫秒...

    python3使用opencv的VideoCapture读取视频文件遇到Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v ...

  3. python strftime函数_PyThon中time strftime()函数用法

    Python有很多好用的函数,其中在time库里,strftime()函数是经常被用到的,而大部分人对strtime的使用似懂非懂,今天小编一篇文章教大家看懂. 一.Python time strft ...

  4. strftime函数的用法

    我做了一个dll想调用CTime类,mfc动态链接库中不能使用CTime类,因为它使用了Windows动态链接库不支持的strftime函数.只好用<time.h>中的方法解决. time ...

  5. Python关于strftime函数详细解析 附实战代码

    目录 前言 1. strftime函数 2. 实战 前言 项目中的python web中,时间都用到了这个函数 深挖了一下基本的知识点以及实战中的书写 主要参考的知识点有: Python time s ...

  6. php strftime 毫秒,php strftime函数获取日期时间(switch用法)

    搜索热词 strftime()函数的用法 strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串. strftime()的语法是strftime(格 ...

  7. strftime函数python_PyThon中time strftime()函数用法

    Python有很多好用的函数,其中在time库里,strftime()函数是经常被用到的,而大部分人对strtime的使用似懂非懂,今天小编一篇文章教大家看懂. 一.Python time strft ...

  8. python strftime函数_Python 格式化输出时间字符串函数 strftime

    strftime()函数将时间格式化 我们可以使用strftime()函数将时间格式化为我们想要的格式.它的原型如下: size_t strftime( char *strDest, size_t m ...

  9. php的strftime先是星期几,PHP中的strftime()函数

    该strftime()方法根据语言环境设置格式化本地时间/日期.它返回使用给定时间戳或当前本地时间根据给定格式字符串格式化的字符串(如果未给出时间戳). 语法strftime(format, time ...

最新文章

  1. C语言接口的封装和设计专题
  2. 介绍一个修改 Visual Studio Code 侧边框颜色的扩展 Peacock
  3. std::chrono时间库详解
  4. 64位Ubuntu kylin 16.04安装wine QQ
  5. r语言 面板数据回归_R语言_018回归
  6. linux mysql定时删除数据_让linux每天定时备份MySQL数据库并删除五天前的备份文件...
  7. java 获取工程编码格式_java 获取获取字符串编码格式
  8. 【知识索引】【汇编语言】
  9. 快速获得Google Chrome最新版本
  10. 项目合同管理 试题分析
  11. 路由器NAT 类型检测实现
  12. 使用QQ邮箱“邮我”组件,给我写信/意见反馈!方便他人快速给你发邮件
  13. Android中常见的内存泄露
  14. Linux系统制作启动U盘并安装centos 7.6
  15. 超全智能 电子设备cc0高清摄影图片素材网站整理
  16. Qt之QWidget设置窗口背景图片的几种方法
  17. 阿德莱德大学计算机科学学士排名,2020年阿德莱德大学计算机科学学士就业前景,入学要求介绍...
  18. realmeq2可以刷鸿蒙系统吗,realmeQ2Pro有NFC功能吗?可以用realmeQ2Pro刷公交和地铁吗...
  19. 大学三年级(yuan)
  20. LoRa网关和NS的那些事

热门文章

  1. centos和ARM编译安装Sqlite完整教程
  2. iframe iframe参数
  3. 【CSS】少年,你想拥有写轮眼么?
  4. [c#] cskin框架的使用步骤
  5. Tomcat实现http2的配置
  6. cuda run out of memory内存不足的解决方案
  7. 股海沉浮:谁知道大连热电600719的庄家是谁?君子报仇,十年不晚!
  8. saiku 网站简介
  9. 成功服务100+半导体企业,靠的是这本《封测秘笈》
  10. 计算机培训机房装修,计算机机房装修基本流程 计算机机房装修要注意什么