strftime和strptime使用(时间日期的格式控制函数)

article/2025/10/3 8:52:09

strftime和strptime使用

openclassroom整理自《linux程序设计》
这两个函数都是时间日期的格式控制函数,在功能上看起来正好相反。strftime将一个tm结构格式化为一个字符串,strptime则是将一个字符串格式化为一个tm结构。

  • strftime

函数原型:size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr)
strftime函数对timeptr指向的tm结构所代表的时间和日期进行格式编排,其结果放在字符串s中。该字符串的长度被设置为(最少)maxsize个字符。格式字符串format用来对写入字符串的字符进行控制,它包含着将被传送到字符串里去的普通字符以及编排时间和日期格式的转换控制符。转换控制符见下表

转换控制符说明
%a星期几的简写形式
%A星期几的全称
%b月份的简写形式
%B月份的全称
%c日期和时间
%d月份中的日期,0-31
%H小时,00-23
%I12进制小时钟点,01-12
%j年份中的日期,001-366
%m年份中的月份,01-12
%M分,00-59
%p上午或下午
%S秒,00-60
%u星期几,1-7
%w星期几,0-6
%x当地格式的日期
%X当地格式的时间
%y年份中的最后两位数,00-99
%Y
%Z地理时区名称

具体的控制转换符说明可以查看man.

  • strptime

函数原型: char *strptime(const char *buf,const char *format,struct tm *timeptr)

format字符串的构建方式和strftime的format字符串完全一样。strptime返回一个指针,指向转换过程处理的最后一个字符后面的那个字符。

看下边一个程序

? View Code C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>int main(){struct tm *tm_ptr,timestruct;time_t the_time;char *buf[256];(void) time(&the_time);tm_ptr=localtime(&the_time);strftime(buf,256,"%A %d %B,%I:%S %p",tm_ptr);printf("strftime gives: %s/n",buf);strcpy(buf,"Sat 26 July 2003,17:53 will do fine");printf("calling strptime with: %s/n",buf);tm_ptr+&timestruct;result=strptime(buf,"%a %d %b %Y,%R",tm_ptr);printf("strptime consumed up to: %s/n",result);printf("strptime gives:/n");printf("date: %02d/%02d/%02d/n",tm_ptr->tm_year%100,tm_ptr->tm_mon+1,tm_ptr->tm_mday);printf("time: %02d:%02d/n",tm_ptr->tm_hour,tm_ptr->tm_min);exit(0);
}

运行后输出
strftime gives:Sunday 06 June, 11:55 AM
calling strptime with:Sat 26 July 2003,17:53 will do fine
strptime consumed up to:will do fine
strptime gives:
date: 03/07/26
time: 17:53


http://chatgpt.dhexx.cn/article/9maYKDeu.shtml

相关文章

符号函数与指示函数

1.符号函数——sign(x) 2.指示函数——

函数的声明和定义

一、函数声明&#xff1a; 1. 告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么。但是具体是不是存在&#xff0c;函数声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。 二、…

main函数的一些操作

系列文章目录 第一章 OC之单例模式 第二章 OC之对象初始化 第三章 OC之类和协议 第四章 OC之main函数中的操作和一些概念 文章目录 系列文章目录前言一、main函数的一些操作二 属性和成员变量三 和isEqual四 分类和拓展五 NSString的三种类型1._NSCFConstantString2._NSCFStri…

函数的介绍

自话函数 函数这一概念&#xff0c;之前在数学中是最常见的。但不要忘记最初设计计算的前辈都是一些数学大家。所以函数这一概念自然也被引入到了计算机中。 数学中函数表示的一种映射关系(集合A到集合B之间的关系)&#xff0c;而到了计算机中这一概念被延伸。 计算机中函数由…

S函数介绍

S函数介绍 S函数中使用文本方式输入公式和方程&#xff0c;适合复杂动态系统的数学描述&#xff0c;并且在仿真过程中可以对仿真参数进行更精确的描述。 S函数模块是整个Simulink动态系统的核心。 S函数时系统函数&#xff08;system function&#xff09;的简称&#xff0c;是…

指示函数(indicator function)

1. 计数器 指示函数表示 其中有哪些元素属于某一子集的次数&#xff0c;及满足某一断言或条件的统计&#xff1b; 比如Hamming Loss&#xff1a; 其中 2. 二维的离散指示函数 ⇒ assignment solution xij∈{0,1…

指示函数 indicator function

指示函数 基本定义 指示函数&#xff08;indicator function&#xff09;   数学中&#xff0c;指示函数是定义在某集合X上的函数&#xff0c;表示其中有哪些元素属于某一子集A。   指示函数有时候也称为特征函数。现在已经少用这一称呼。概率论有另一意思迥异的特征函数。…

指示函数(indicator function)含义及word使用

含义 文献公式中经常能看到有个镂空的1的符号&#xff0c;表示指示函数 当符号后的式子为True&#xff0c;则函数值为1&#xff0c;否则为0 word中如何输入&#xff1f; 插入符号&#xff1a;字体选择“Cambria”&#xff0c;将符号列表下拉至最后&#xff0c;即可看到所有镂…

指示函数与符号函数

1、指示函数 数学中&#xff0c;指示函数是定义在某集合X上的函数&#xff0c;表示其中有哪些元素属于某一子集A。   指示函数有时候也称为特征函数。现在已经少用这一称呼。概率论有另一意思迥异的特征函数。 可以说为真输出1&#xff0c;为假输出0. 2、符号函数 数学上的…

函数的详细说明

作者简介&#xff1a;大一在校软件工程学生&#xff0c;正在奔赴成为大佬的路上&#xff0c;目前不定时更新C语言的相关知识体系和游戏制作 隶属专栏&#xff1a;C语言的大致理解 个人主页&#xff1a;励志做大佬的主页 目录 函数 函数的引入 函数的定义 函数的返回值 有…

指示函数

指示函数或示性函数&#xff08;indicator function&#xff09;数学中&#xff0c;指示函数是定义在某集合X上的函数&#xff0c;表示其中有哪些元素属于某一子集A。 即若x为真&#xff0c;则取值为1&#xff0c;否则取值为0.

TwinCAT3入门教程1——TC3系统安装

1、软件安装包和下载来源 1.1、V S2013&#xff0c;镜像文件&#xff1a;http://download.microsoft.com/download/B/1/9/B1932B8C-1046-4773-A1DD-4AB5C0978637/vs2013.2_ult_chs.iso 1.2 TC3安包和帮助 最新的安装包&#xff1a;Beckhoff | New Automation Technology | Bec…

TwinCAT3串口通讯EL6021模块使用-和串口调试助手自由协议通讯

目录 一、简介 二、环境介绍 三、接线连接 四、创建TwinCAT3程序工程 1、IO扫描和参数设置 2、字符串型数据发送和接收PLC程序创建 &#xff08;1&#xff09;库文件添加 &#xff08;2&#xff09;创建任务和程序 &#xff08;3&#xff09;变量关联 &#xff08;4&#…

TwinCAT3之Ads通讯——1、控制器和控制器间通讯

目录 1 简介 2 硬件连接 3、工程和配置 3.1 Ads Mast主工程 3.2 创建从机工程 4 Ads主机中读写操作测试 4.1 Mast读操作 4.2 Mast写操作 1 简介 ADS通讯是倍福公司定义的一种专门协议&#xff0c;用于TwinCATsheb 之间非周期性通讯。既可以用控制器内部通讯、控制器跟控…

【Twincat3】devices的scan不可选中,twincat服务未开启

1.问题现象: 2.问题原因&#xff1a; 从站未开启&#xff0c;即这个图标是灰色状态 3.解决方法&#xff1a; 1&#xff09;winR&#xff0c;输入msconfig命令&#xff1a; 2&#xff09;勾选twincat服务&#xff0c;点击应用确定即可 3&#xff09;点击后&#xff0c;会有…

TwinCAT3 学习笔记一之界面介绍

TwinCAT3图标介绍 安装好TwinCAT3后可以在任务栏右下角看见这个图标 About TwinCAT 右击第一行的About TwinCAT 可以看见TwinCAT3版本 也可以找到本机的AMS Net Id Tool工具栏 Event Viewer 可以记录软件的运行和错误的历史。 TwinCAT Project Compare 可以进行项目工程…

Twincat3 的基础操作

一、倍福Twincat3的安装操作 安装地址:www.beckhoff.com.cn 安装步骤: 安装后点击下一步即可安装成功。 注意事项: 二、 Twincat3目录介绍 三层架构 PLC轴、NC轴和物理轴 PLC程序为PLC轴 NC配置界面定义的AXIS叫NC轴 IO配置扫描的硬件叫物理轴 PLC程序对电机进行控制需经过两…

TwinCAT3导入TwinCAT2项目pro文件的方法

TwinCAT3导入TwinCAT2项目pro文件的方法 1、在倍福虚拟学院的网站上&#xff0c;经常可以下载到基于TwinCAT2编写的例程&#xff0c;要在TwinCAT3的编程环境中打开这些例程&#xff0c;可以遵循以下的方法&#xff1a; 背景知识介绍&#xff1a; 例如下载了EL6021的自由串口例…

【EtherCAT实践篇】四、TwinCAT 3实验1-基本操作

这里EtherCAT主站采用PC 的TwinCAT 3&#xff0c;【EtherCAT实践篇】一、TwinCAT3安装已经介绍了TwinCAT 3的安装方法。在利用TwinCAT 3进行实验前&#xff0c; 先学习下TwinCAT 3的基本操作。 1、TwinCAT3新建工程 新建项目&#xff1a; 填好新建工程路径和名称&#xff1a;…

TwinCAT3 Error starting TwinCAT system! 报错问题

TwinCAT3 Error starting TwinCAT system! 报错问题 Win10系统下 TwinCAT3 首次使用运行项目时会出现如图报错&#xff1a; TwinCAT System (10000): Sending ams command >> lnit4\RTime: Start Interrupt: Ticker started >> AdsError: 4115 (0x1013, RTIME: s…