说明

  • 编程中,时间格式转换是常用的功能,特别是与格式化字符串之间的互相转换。

时间转格式化字符串

  1. 固定格式字符串 - asctime/asctime_r/ctime/ctime_r函数
  • asctime/asctime_r函数支持将一个struct tm结构格式化为一个固定格式字符串;ctime/ctime_r函数支持将一个time_t变量转换为一个固定格式字符串。
  • 固定格式:Www Mmm dd hh:mm:ss yyyy,Www 表示星期几,Mmm 是以字母表示的月份,dd 表示一月中的第几天,hh:mm:ss 表示时间,yyyy 表示年份
* 函数原型如下:
#include <time.h>char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf);
char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf);* 示例
time_t curtime;
time(&curtime);
struct tm t;
gmtime_r(&curtime, &t);puts(asctime(&t)
printf("当前时间 = %s", ctime(&curtime));* 函数说明
asctime和ctime采用静态变量保存的转换结果,不是线程安全的,asctime_r和ctime_r是其线程安全版本
  1. 自定义格式字符串 - strftime函数
  • 函数支持将一个struct tm结构格式化为一个自定义格式的字符串。
* 函数原型如下:
#include <time.h>size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);* 参数说明
s     : 转换结果输出buf
max   :输出buf(s)的内存空间大小
format:转换后字符串的格式
tm    :输入,struct tm结构的时间* format格式控制符号
%a : 星期几的简写形式
%A : 星期几的全称
%b : 月份的简写形式
%B : 月份的全称
%c : 日期和时间
...
更多格式请看man中的帮助说明* 示例:
char time_str[20] = {0};
strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M", localtime(&now));* 运行结果
2020-11-28 21:52
  • strftime函数可以满足大部分需求,示例:嵌入式Http服务器goahead不支持新的RFC1123标准的时间字符串,需要自主实现,如下:
RFC1123_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z"; //新式RFC1123标准的时间字符串格式
asctimePattern = "EEE MMM d HH:mm:ss yyyyy"; //当前goahead采用的时间字符串格式
* 使用strftime实现新标准
char buf[100] = {0};
strftime(buf,100,"%a, %d %b %Y %H:%M:%S %Z", &tm);
  1. 自定义格式字符串 - 自主实现
  • 可通过sprintf函数实现自定义格式化。

格式化字符串转时间

  1. 自定义格式字符串 - strptime函数
  • 函数支持将一个格式化字符串转换为一个struct tm结构,函数原型如下:
* 函数原型如下:
#include <time.h>char *strptime(const char *buf,const char*format,struct tm *timeptr)* 参数说明
buf    : 输入的格式化时间字符串
format : 输入字符串的格式(与strftime中的格式一样)
timeptr: 输出时间转换结果
返回:返回一个指针,指向转换后的剩余字符。* 示例:
struct tm tm;
char buf[255] = "24/Aug/2011:09:42:35";  strptime(buf, "%d/%b/%Y:%H:%M:%S" , &tm); * 运行结果
tm中保存了转换后的时间
  1. 自定义格式字符串 - 自主实现
  • 可通过sscanf函数实现自定义格式字符串转换成时间。

时间操作 - 时间格式转换相关推荐

  1. 日期、时间、数字格式转换

    日期.时间.数字格式转换: /*** *---------------------------------------** | *** 日期.时间.数字格式转换 *** |* *----------- ...

  2. python mysql日期输出格式_Python/Shell/MySQL时间获取与格式转换

    一.说明 时间的获取及时间各格式间的转换是比较常用的操作,但一是多种语言经常容易弄混,二是同一种语言同一个功能可能有不同的实现函数,导致每次处理时间经常要百度所以来记录一下. 另外个人真不喜欢同样功能 ...

  3. sql时间函数以及格式转换

    文章目录 一.sql中的时间函数们 1.getdate() 2.dateadd(type,num,date) 3.datediff(type,date1,date2) 4.datepart(part, ...

  4. datepick二格式 化时间_Date日期格式转换

    1 Date 1.1 概述(是什么) ​ 表示特定的瞬间 精确到毫秒 1秒=1000毫秒 ​ 查询手册 拥有多个构造函数 但是4个已经过时 剩下的两个可以把毫秒值转成日期对象 ​ Date(); ​ ...

  5. Go time 时间的各种格式转换

    比如2020-07-15T16:00:00.000Z 转成 2020-07-15 16:00:00 strTime := "2020-07-15T16:00:00.000Z"t1, ...

  6. oracle时间24小时格式转换,在oracle数据库中查询时间并转为24小时制--------------String转Date类型或者Date转String类型...

    1.在Oracle数据库中查询时间的时候,首先就是把日期从date类型的转化为String类型的. 2.将date类型的转成String类型的,直接调用传入date类型的参数,返回String类型的字 ...

  7. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...

    数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...

  8. Java JSON时间处理 Jackson 的时间操作 时间序列化 Jackson Date

    原文链接:Jackson Date 1. Overview 概述 In this tutorial, we'll serialize dates with Jackson. We'll start b ...

  9. ffmpeg命令操作音频格式转换

    1.转MP3为wav ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav 2.转m4a为wav ffmpeg -i inp ...

  10. “2019-04-25T16:00:00.000+000”时间格式转换 (IE兼容问题)

    转化时间一般使用new Date() function format(date){ var data = new Date(date); var year = date.getFullYear(); ...

最新文章

  1. [C++STL]C++实现queue容器适配器
  2. 论文小综 | Pre-training on Graphs
  3. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(3)--(P3P的迭代解)
  4. 爆火的Java面试题-kafka源码解析与实战豆瓣
  5. Iplimage设置感兴趣区域(ROI)
  6. vc2017 c语言运行,vc++2017下载|vc++2017运行库 32位64位 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  7. jsp代码编写简单的BBS论坛项目的总结
  8. bigemap如何下生成CGCS2000坐标系等高线
  9. 循环矩阵求特征值的方法
  10. et al和etc区别
  11. 通过Xcode中的Packetlogger抓取iPhone蓝牙交互封包
  12. [附案例]如何运营私域流量,提升用户终身价值,降低整体获客成本?
  13. dht11 python mysql_自己动手实现智能家居之温湿度数据采集存储(DHT11,MySql)
  14. 将家安在天涯,将这儿作为副战
  15. 9 本优秀的 R 语言免费电子书
  16. HDU4685:Prince and Princess(二分图匹配+tarjan)
  17. 大数据舞台中的Flink
  18. C#网站图片下载器,网络爬虫,仅供学习参考使用,不可用于商业活动
  19. css3中的景深,3d,和动画效果
  20. 给你的钥匙贴个标签,就不用担心找不到了

热门文章

  1. Junit单元测试的基本步骤
  2. 2核4G阿里云服务器被黑客抓鸡??然鹅一个操作就搞定
  3. 手动解除加密文件夹 lockdir产生的文件com1.{d3e34b21-9d75-101a-8c3d-00aa001a1652}
  4. centos6.3 mysql安装_CentOS 6.3 安装MySQL-5.7.10
  5. Resource Hacker软件更换应用图标
  6. 【Sql Server 数据导出】导出篇-Sql Server 2008导出数据至wps
  7. Windows PowerShell命令大全
  8. 国家测绘局制定的测绘与地理信息行业标准统计 (20110706)
  9. 【LED灯屏控制器】国产FPGA之 AG10KSDE176 初探(1)
  10. 小米浏览器地址栏欺骗漏洞原理与利用分析