Unix时间戳详解

前言

Unix时间戳最早是在Unix系统中使用的,之后很多由Unix演变而来的系统也都继承了Unix时间戳的规定。目前,Linux、Windows、安卓这些系统的底层计时系统都使用的是Unix时间戳。

一、Unix时间戳简介

Unix时间戳(Unix timestamp)是UNIX操作系统中的一种时间表示方式,以自1970年1月1日00:00:00(格林威治时间)以来的秒数来表示时间。它通常以整数形式存在,表示从该起始时间点到当前时间点所经过的秒数。

Unix时间戳的优势在于其简单性和一致性,可以在不同的编程语言和操作系统中使用。许多编程语言提供了函数或库来将Unix时间戳转换为易读的日期和时间格式,或将日期和时间格式转换为Unix时间戳。

由于Unix时间戳是以秒为单位表示时间,因此它可以很容易地进行数学运算,如计算时间差、比较日期等。

二、UTC / GMT

GMT记时的不足之处是地球自转一周的时间不是固定的,是越来越慢的。UTC会引入润秒,在与GMT计时的误差超过0.9秒时多走1秒来保证记时与地球自转的协调一致。

三、Unix时间戳特点

不考虑润秒:每次产生润秒的时候,时间戳的时间和国家授时中心的标准时间就会相差1秒。

时间戳说的1970年1月1日0时0分0秒指的是伦敦时间的0时0分0秒。每偏差一个时区,时间就加1或者减1。 

四、时间戳转换

C言的time.h模块提供了时间获取和时间戳转换的相关函数,可以方便地进行秒计数器、日期时间和字符串之间的转换。

time_t:int64类型,是一个64位有符号的整型数据;

struct tm:结构体类型,里面是年月日时分秒星期等内容的数据;

五、代码展示

#include<stdio.h>
#include<time.h>time_t time_cnt;
struct tm time_date;
char *time_str;int main(){time_cnt = time(NULL);time(&time_cnt);printf("%d\n",time_cnt);time_date = *gmtime(&time_cnt);printf("%d\n",time_date.tm_year + 1900);printf("%d\n",time_date.tm_mon + 1);printf("%d\n",time_date.tm_mday);printf("%d\n",time_date.tm_hour);printf("%d\n",time_date.tm_min);printf("%d\n",time_date.tm_sec);printf("%d\n",time_date.tm_wday);time_cnt = mktime(&time_date);printf("%d\n", time_cnt);time_str = ctime(&time_cnt);printf(time_str);time_str = asctime(&time_date);printf(time_str);char t[50];strftime(t, 50, "%H-%M-%S",&time_date);printf(t);return 0;
}

输出展示:

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

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

相关文章

深度学习介绍

对于具备完善业务逻辑的任务&#xff0c;大多数情况下&#xff0c;正常的人都可以给出一个符合业务逻辑的应用程序。但是对于一些包含超过人类所能考虑到的逻辑的任务&#xff0c;例如面对如下任务&#xff1a; 编写一个应用程序&#xff0c;接受地理信息、卫星图像和一些历史…

vscode安装后无右键进入

vscode安装后无右键进入 注&#xff1a;安装时&#xff0c;勾选这两项及可

彻底学会系列:一、机器学习之线性回归

1.基本概念 线性回归&#xff1a; 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量&#xff1a; 影响目标变量的因素&#xff1a; X 1 , X 2 . . . X_1, X_2... X1​,X2​... &#xff0c;连续值或离散值。 目标变量&#xff1a; 需要预测的值: t…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)

原文&#xff1a;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第三章&#xff1a;分类 在第一章中&#xff0c;我提到最常见的监督学习任务是回归&#xff08;预测值&#xff09;和分类&#…

jmeter设置定时器

前言 本文主要分享两种定时器&#xff08;同步定时器、固定定时器&#xff09;的用法&#xff0c;从作用&#xff0c;设置方法以及实例演示几个方面讲解&#xff0c;结尾还有小知识哦&#xff01;一起开始学习吧&#xff01; 一、同步定时器&#xff08;集合点&#xff09; …

一个完整工作流管理系统的组成部分

一个完整工作流管理系统的组成部分 一个完整的工作流管理系统通常由工作流引擎、工作流设计器、流程操作、工作流客户端程序、流程监控、表单设计器、与表单的集成以及与应用程序的集成八个部分组成。 一、工作流组成 1. 工作流引擎 工作流引擎作为工作流管理系统的核心部分&…

【iOS ARKit】3D人体姿态估计实例

与2D人体姿态检测一样&#xff0c;在ARKit 中&#xff0c;我们不必关心底层的人体骨骼关节点检测算法&#xff0c;也不必自己去调用这些算法&#xff0c;在运行使用 ARBodyTrackingConfiguration 配置的 ARSession 之后&#xff0c;基于摄像头图像的3D人体姿态估计任务也会启动…

蓝桥杯第八届省赛题笔记------基于单片机的电子钟程序设计与调试

题目要求&#xff1a; 一、基本要求 1.1 使用 CT107D 单片机竞赛板&#xff0c;完成“电子钟”功能的程序设计与调试&#xff1b; 1.2 设计与调试过程中&#xff0c;可参考组委会提供的“资源数据包”&#xff1b; 1.3 Keil 工程文件以准考证号命名&#xff0c;保存在…

stable diffusion学习笔记——高清修复

ai画图中通常存在以下痛点&#xff1a; 受限于本地设备的性能&#xff08;主要是显卡显存&#xff09;&#xff0c;无法跑出分辨率较高的图片。生图的时候分辨率一调大就爆显存。即便显存足够。目前主流的模型大多基于SD1.0和SD1.5&#xff0c;这些模型在训练的时候通常使用小…

多播路由选择

目录 1 多播路由选择 1.1 转发多播数据报时使用三种方法 (1) 洪泛与剪除 RPB 的要点&#xff1a; 1.检查&#xff0c;转发 2.形成以源为根节点的多播转发树 3.剪枝与嫁接 (2) 隧道技术 (tunneling) (3) 基于核心的发现技术 1.2 几种多播路由选择协议 1 多播路由选择 …

git 合并多条提交记录

我要合并多条提交记录&#xff08;合并前7条为一条&#xff09;&#xff0c;实现如下效果&#xff1a; 使用git rebase // 查看前10个commit git log -10 // 将7个commit压缩成一个commit&#xff1b;注意&#xff1a;vim编辑器 git rebase -i HEAD~4 // add已经跟踪的文件 g…

Linux(二)

远程登录 Linux大多应用于服务器&#xff0c;而服务器不可能像PC一样放在办公室&#xff0c;它们是放在IDC机房的&#xff0c;所以我平时登录linux系统都是通过远程登录的。 Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口&#xff0c;而且当我们安装…