c语言库函数:时间相关time,localtime,asctime

目录

1.引言

2.时间函数基本信息

2.1 time函数

2.2 local函数

2.3 asctime函数

3.使用demo


1.引言

很多时候,我们需要使用当前时间,怎么获取呢?其实c语言库函数中提供了一些列时间相关的函数,可以从系统中获取时间的方法。今天我们就熟悉一下相关函数吧,并提供获取本地时间的demo.

2.时间函数基本信息

2.1 time函数

头文件
#include<time.h>

函数原型
time_t time(time_t *seconds)
参数说明
seconds -- 这是指向类型为 time_t 的对象的指针,用来存储 seconds 的值
返回值

尽管 C 标准没有定义,它几乎总是一个保有从纪元开始秒数的整数值(不计闰秒),对应成功时返回编码成 time_t 对象的当前日历时间。错误时返回 (time_t)(-1) 。若seconds不是空指针,则返回值也会存储于 arg 所指向的对象。
time_t数据结构
typedef /* unspecified */ time_t; //暂时未指定

2.2 local函数

头文件
#include<time.h>

函数原型
struct tm *localtime( const time_t *time );
参数说明
time—转换从纪元开始的给定时间( 常常是time函数返回的time_t 的值),以 struct tm 格式及本地时间表达的日历时间。存储结果于静态存储,并返回指向静态存储的指针。
返回值
成功时为指向内部静态 struct tm 对象的指针,否则为 NULL 。

tm结构体
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;       /* 夏令时                */
};

2.3 asctime函数

头文件
#include<time.h>
函数原型
char* asctime( const struct tm* time_ptr );
功能
将给定的日历时间 *time_ptr 转换成下列固定的 25 字符文本返回字符数组中

Www Mmm dd hh:mm:ss yyyy\n 
Www - 三字母英文星期缩写,

来自 time_ptr->tm_wday ,为 Mon 、 Tue 、 Wed 、 Thu 、 Fri 、 Sat 、 Sun 之一。
Mmm - 三字母英文月份缩写,

来自 time_ptr->tm_mon,为 Jan 、 Feb 、 Mar 、 Apr 、 May 、 Jun 、 Jul 、 Aug 、 Sep 、 Oct 、 Nov 、 Dec 之一。
dd - 月份日期的 2 位数字,

来自 time_ptr->tm_mday ,如 sprintf 用 %2d 打印。
hh - 小时的 2 位数字,

来自 time_ptr->tm_hour ,如 sprintf 用 %.2d 打印。
mm - 分的 2 位数字,

来自 time_ptr->tm_min ,如 sprintf 用 %.2d 打印。
ss - 秒的 2 位数字,

来自 time_ptr->tm_sec ,如 sprintf 用 %.2d 打印。
yyyy - 年的 4 位数字,

来自 time_ptr->tm_year + 1900 ,如 sprintf 用 %4d 打印。

3.使用demo

#include<stdio.h>
#include<time.h>int main(int argn, char* argv[])
{time_t tm1;//为了使用localtime返回的存放静态时间日期的资源指针struct tm* ptm;//获取时间,据某个历史时间的秒数tm1 = time(NULL);ptm = localtime(&tm1);//打印,其中asctime是为了把tm结构体的资源变成字符串printf("hello tm1:%ld\n",tm1);printf("hello ptm:\n%s\n",asctime(ptm));return 0;
}

编译

g++ time_demo.cpp -o time_demo

运行

 ./time_demo

结果如下

root@xuehaiyang:/mnt/hgfs/99_github/cpp_demo# ./time_demo
hello tm1:1712334446
hello ptm:
Sat Apr  6 00:27:26 2024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SV学习笔记(五)

线程的使用 程序和模块 module&#xff08;模块&#xff09;作为SV从verilog继承过来的概念&#xff0c;自然地保持了它的特点&#xff0c;除了作为RTL模型的外壳包装和实现硬件行为&#xff0c;在更高层的集成层面&#xff0c;模块之间也需要通信和同步。 对于硬件的过程块&…

如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 控制另一台电脑有很多方法&…

记录一下前端定时器清除失效的问题

目录 一、问题引入 二、错误代码&#xff1a; 三、错误原因 四、修正的代码 附 vue提供的线上运行代码网址以便证实可用性 一、问题引入 按理说&#xff0c;打开定时器 xxx setInterval(()>{ },100)&#xff0c;之后只要 clearInterval(xxx) 就可以顺利关闭定时器…

5.113 BCC工具之nfsslower.py解读

一,工具简介 NFS是一种分布式文件系统协议,允许客户端通过网络访问服务器上的文件。然而,由于网络延迟、服务器负载等原因,NFS操作可能会变得缓慢,从而影响系统性能。 nfsslower 显示慢于阈值的 NFS 读取、写入、打开和 getattr 操作。这有助于我们发现导致NFS性能下降的…

【漏洞复现】用友NC Cloud前台命令执行漏洞

0x01 阅读须知 “如棠安全的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供…

Visual Studio安装下载进度为零已解决

因为在安装pytorch3d0.3.0时遇到问题&#xff0c;提示没有cl.exe&#xff0c;VS的C编译组件&#xff0c;可以添加组件也可以重装VS。查了下2019版比2022问题少&#xff0c;选择了安装2019版&#xff0c;下面是下载安装时遇到的问题记录&#xff0c;关于下载进度为零网上有三类解…

[Spring Cloud] gateway全局异常捕捉统一返回值

文章目录 处理转发失败的情况全局参数同一返回格式操作消息对象AjaxResult返回值状态描述对象AjaxStatus返回值枚举接口层StatusCode 全局异常处理器自定义通用异常定一个自定义异常覆盖默认的异常处理自定义异常处理工具 在上一篇章时我们有了一个简单的gateway网关 [Spring C…

蓝桥杯杯赛之深度优先搜索优化《1.分成互质组》 《 2.小猫爬山》【dfs】【深度搜索剪枝优化】【搜索顺序】

文章目录 思想例题1. 分成互质组题目链接题目描述【解法一】【解法二】 2. 小猫爬山题目链接题目描述输入样例&#xff1a;输出样例&#xff1a;【思路】【WA代码】【AC代码】 思想 本质为两种搜索顺序&#xff1a; 枚举当前元素可以放入哪一组枚举每一组可以放入哪些元素 操…

如何更改WordPress站点的域名:完全指南

更换WordPress网站的域名可能看起来是一个复杂的过程&#xff0c;但只要按部就班&#xff0c;实际上是一个相对直接的任务。无论是因为品牌重塑&#xff0c;还是简单地想要一个更好的域名&#xff0c;这篇文章将引导你通过从旧域名到新域名的整个迁移过程。请仔细遵循以下步骤&…

腾讯云服务器优惠活动价格表_CPU内存带宽报价明细

2024年最新腾讯云服务器租用优惠价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器646元15个月&#xff1b;轻量4核16G12M带宽32元1个月、96元3个…

【OpenCV-颜色空间】

OpenCV-颜色空间 ■ RGB■ BGR■ HSV■ HSL■ HUE■ YUV ■ RGB ■ BGR BGR 就是RGB R和B调换位置。 OpenCV 默认使用BGR ■ HSV ■ HSL ■ HUE ■ YUV

数组指针和指针数组

理解数组指针和指针数组之间的区别是很重要的&#xff0c;尤其在C语言中。以下是它们的主要区别&#xff1a; 数组指针&#xff08;Pointer to an Array&#xff09;&#xff1a; 数组指针是指向数组的指针。 它指向整个数组&#xff0c;而不是数组中的单个元素。 它的声明形…

C#将Console写至文件,且文件固定最大长度

参考文章 将C#的Console.Write同步到控制台和log文件输出 业务需求 在生产环境中&#xff0c;控制台窗口不便展示出来。 为了在生产环境中&#xff0c;完整记录控制台应用的输出&#xff0c;选择将其输出到文件中。 但是&#xff0c;一次性存储所有输出的话&#xff0c;文件会…

环形链表--极致的简便

一、要求 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab) 模型描述 偏最小二乘法(Partial Least Squares, PLS)是一种统计建模方法,用于建立变量之间的线性关系模型。它是对多元线性回归方法的扩展,特别适用于处理高维数据和具有多重共线性的数据集。…

Java基础学习:Java agent

文章目录 一、java agent介绍二、Java Agent的应用场景 一、java agent介绍 Java Agent是Java编程语言提供的一种特殊机制&#xff0c;允许在程序运行过程中对字节码进行转换和增强。它通过Java的Instrumentation API来实现&#xff0c;主要用于在应用程序加载类时进行监测、修…

卫星遥感影像统计农业产量、作物分类及面积

卫星遥感技术的广泛应用为农业领域带来了巨大的变革&#xff0c;其中&#xff0c;卫星遥感影像在农业产量估算方面的应用正成为一项关键技术。通过高分辨率的遥感数据&#xff0c;农业生产者可以更准确、及时地了解农田状况&#xff0c;实现精准农业管理&#xff0c;提高产量和…

真--个人收款系统方案

此文主要说明方案&#xff0c;无代码部分 前言: 有个个人项目需要接入vip系统&#xff0c;我们发现微信、支付宝的官方API主要服务商户&#xff0c;而市面上的“个人收款系统”也往往不符合我们的需求。不过&#xff0c;每次支付时通知栏的信息给了我灵感。走投无路&#xff0…

蓝桥杯 第2155题质因数个数 C++ Java Python

题目 思路和解题方法 目标是计算给定数 n 的质因数个数。可以使用了试除法来找到 n 的所有质因数 读取输入的数 n。从 2 开始遍历到 sqrt(n)&#xff0c;对于每个数 i&#xff1a; 如果 n 能被 i 整除&#xff0c;则进行以下操作&#xff1a; 将 n 除以 i&#xff0c;直到 n 不…