C语言格式化输出日期时间
例程
其实函数就那么几个,具体方法也不少,以下列出几种:
#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语言格式化输出日期时间相关推荐
- javascript两行代码按指定格式输出日期时间
javascript两行代码按指定格式输出日期时间,具体看代码: function date2str(x,y) {var z ={y:x.getFullYear(),M:x.getMonth()+1, ...
- 萌新的Python练习菜鸟100例(十)暂停一秒输出,并格式化输出当前时间
题目: 题目:暂停一秒输出,并格式化当前时间 分析: 主要是练习输出本机时间 · 使用Python time模块 · 再使用time.sleep()函数,时间为秒,可以自由设置 · 格式化输出当前时间 ...
- c语言直接输出PDF,C语言格式化输出总结.pdf
C C 语言格式化输出总结语言格式化输出总结 一 一 printf printf 函数函数9 S4 Y N4 r S V0 I w printf 函数是格式化输出函数 一般用于向标准输出设备按规定格式 ...
- Go语言格式化输出(fmt)
Go语言格式化输出 在Go语言中格式化输出通常使用 fmt 包,通用的输出格式如下表所示: 表:通用输出格式 输出格式 输出内容 %v 值的默认格式表示 %+v 类似 %v,但输出结构体时会添加字段名 ...
- c语言中字符串格式输出有负号,C语言格式化输出
C语言格式化输出 printf()格式化输出详解 本文来 自:http://www.kuqin.com/language/20080420/7060.html printf的格式控制的完整格式: % ...
- Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类
在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...
- java规定日期格式输出_Java格式化输出日期百分比时间等
Java格式化输出 Java的格式化输出等同于String.Format,与C有很大的相似,比如 System.out.printf("%8.2f", x); 在printf中,可 ...
- c语言编写万年历程序显示时间,C语言格式化输出日历(万年历)
C语言控制台输出日历.先输入年份,然后输入每行显示的月份个数. 如图: 代码如下: #include int main(void) { int a, i, j, n, k, t, w, x, y, z ...
- C#格式化字符串,日期,时间,货币
时间格式化 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用 ...
- linux如何更改服务器时间格式,Linux中date命令,格式化输出,时间设置
date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]...[+格式] 或:date [-u|--utc|--universal] ...
最新文章
- int *p=NULL; *p=9;是错误的!
- matlab中的lsqcurvefit使用
- 最不适合做数据分析的6种性格,看看你占了几个?
- mysql-8.0.16-winx64详细安装教程
- paip.代码生成器数据源格式最佳实践
- esp32在ubuntu搭建环境,clone esp-idf部分库clone失败
- 安川e1000中文说明书_安川E1000变频器维修故障代码说明书
- 【中科三方】什么是云解析DNS?云解析DNS有必要购买吗?
- pytorch错误——Torch not compiled with CUDA enabled
- 【perl计算基因在基因组上的距离】
- php伪装图片,GIF 图片伪装技术
- 关于AndroBench在Android 10以后性能衰减的问题分析
- Linux下lsb_release命令的安装教程
- java窗口如何定时关闭_[Java教程]【温故而知新】Javascript窗口效果 (全屏显示窗口、定时关闭窗口)_星空网...
- 全网页都变灰了,这是怎么实现的?
- 安装JBuilder2005问题
- windows7系统Prolific USB-to-Serial Comm Port问题
- Response重定向
- 量化投资学习-15:散户与庄家共赢策略之价值长线策略
- linux--发展史与环境
热门文章
- Tomcat修改端口号图文详解
- steam邮箱服务器设置,Steam游戏通用进服教程
- firefox 3.0 beta 1 试用与下载
- 双层PDFmaker
- 一款 Java 开源的 Spring Boot 即时通讯 IM 聊天系统(源码自取)
- cad中tk什么意思_cad绘图tk命令技巧
- 蛋糕店选址该注意什么,如何了解客群画像和竞品情况
- 日常笔记-snownlp情感分析计算情感得分
- P12 | N-path filter (ISSCC2021 JSSC-2011-03)
- Hookswork补单逻辑说明——多帐户跨平台MT4跟单软件