说明

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

时间转格式化字符串

  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. 飞象求职学python_用Python制作markdown编辑器
  2. IPSEC传输模式和隧道模式的区别
  3. vue引入id3_vue常见知识点
  4. 在React项目中,如何优雅的优化长列表
  5. 全开源微信小程序商城系统源码:基于Java+uniapp框架开发
  6. 2022好用的手机库存管理软件排行榜前十名 手机库存管理app
  7. quartus频率计 时钟设置_基于QuartusII的两种数字频率计的设计与比较
  8. 卡巴斯基7.0最新激活码
  9. fastdfs 内网 公网 双ip问题
  10. 围成一圈的排列组合问题_排列组合问题模拟练习题
  11. 江苏省2021年高考成绩查询有分数吗,江苏省2021年普通高考录取分数线公布
  12. Android TabLayout设置选中状态标题字体大小,粗细
  13. 见过用turtle画表情包的吗!
  14. 字符串匹配------回顾大一时的一份代码
  15. 视频采集卡二次开发(天敏SDK2500+openCV)
  16. python逐步回归筛选变量_统计学干货 I 逐步回归
  17. 网狐棋牌框架内核通信设计原理剖析
  18. 英语——不定词(二)
  19. informatica 学习日记整理
  20. 阿里云服务器卸载宝塔面板

热门文章

  1. QQ登陆界面Resource Hacker制作
  2. java httpsession_JavaWeb:HttpSession
  3. EditPlus之Java开发环境配置
  4. PHP在线讨饭源码+支付宝当面付DEMO+自动在线要饭源码+安装教程
  5. 电机不动 米兔机器人_深度解密米兔积木机器人八大黑科技
  6. Java中使用Google zxing生成二维码
  7. 智慧园区中心服务平台建议方案
  8. 小米手机解锁 usb3.0状态下
  9. Java基于spingboot+vue智慧小区物业管理系统源码 智慧小区管理系统源码
  10. 查看局域网内的所有IP地址