1. 时间戳转换为日历时间

时间戳是记录的是绝对的秒数或者毫秒数,人类不可读,而日历时间是人类可读时间。可以利用函数 localtime() 将时间戳转换为日历时间。注意,localtime() 函数返回值是 tm 时间类型的指针,对应的是当前电脑系统所在时区的各项时间属性。

#include <stdio.h>
#include <time.h>void TestLocaltime(){// 获取当前时间time_t current_time;time(&current_time);// 将时间戳转换为 tmstruct tm *calendar;calendar = localtime(&current_time);// 利用 tm 输出人类可读时间,注意 tm_year的输出是在1900的基础上输出的,tm_mon是从0开始输出的printf("%d/%d/%d %d:%d:%d\n",calendar->tm_year + 1900, calendar->tm_mon + 1, calendar->tm_mday,calendar->tm_hour, calendar->tm_min, calendar->tm_sec);
}

此外,还有一个函数 gmtime() 也可以用于获取 struct tm 时间类型的时间。只不过与 localtime() 相比,gmtime() 返回的是零时区的时间,并非电脑系统对应的时区时间。

void TestGmtime(){// 获取当前时间time_t current_time;time(&current_time);// 将时间戳转换为 tm,// 北京时间struct tm* calendar;calendar = localtime(&current_time);// 2021/8/9 21:7:2printf("%d/%d/%d %d:%d:%d\n",calendar->tm_year + 1900, calendar->tm_mon + 1, calendar->tm_mday,calendar->tm_hour, calendar->tm_min, calendar->tm_sec);// 零时区时间struct tm* calendar2 = gmtime(&current_time);// 2021/8/9 13:7:2printf("%d/%d/%d %d:%d:%d\n",calendar2->tm_year + 1900, calendar2->tm_mon + 1, calendar2->tm_mday,calendar2->tm_hour, calendar2->tm_min, calendar2->tm_sec);
}

2. 日历时间转换为时间戳

利用函数 mktime() 可以将 struct tm 时间类型转化为 time_t 时间戳。不仅如此,mktime() 还可以对 struct tm 类型的变量进行调整。例如 calendar 的秒数被赋值为 70,那么 mktime() 可以让其自动进位,分钟值加1,秒值变为10。

void TestMktime(){// 获取当前时间time_t current_time;time(&current_time);printf("current_time: %lld\n", current_time);// 将时间戳转换为 tmstruct tm *calendar;calendar = localtime(&current_time);calendar->tm_sec = 80;// 2021/8/9 20:58:80printf("%d/%d/%d %d:%d:%d\n",calendar->tm_year + 1900, calendar->tm_mon + 1, calendar->tm_mday,calendar->tm_hour, calendar->tm_min, calendar->tm_sec);// 将 tm 转为时间戳,并且调整 tm 的时间数据,使其自动进位time_t current_time2 = mktime(calendar);printf("current_time2: %lld\n", current_time2);// 2021/8/9 20:59:20,与上面相比,自动进位printf("%d/%d/%d %d:%d:%d\n",calendar->tm_year + 1900, calendar->tm_mon + 1, calendar->tm_mday,calendar->tm_hour, calendar->tm_min, calendar->tm_sec);
}

10-3 获取日历时间相关推荐

  1. Calendar日历类详解【SimpleDateFormat、时区、Date、夏令时、常用方法,日期差、获取当前时间】

    Calendar 获取当前时间 SimpleDateFormat 获取年月日等 设置特定时间.时区 日期的计算(加减) 计算日期差 计算某月有几天 Calendar常用方法合集 夏令时是什么 简介: ...

  2. mysql 日期减10分钟_获取当前时间减去10分钟的话SQL语句怎么写

    获取当前时间减去10分钟的话SQL语句怎么写 Mysql日期和时间函数不求人 本文出自:http://linuxdb.yeah.net 作者: 晏子 (2001-07-05 15:00:00) 对于每 ...

  3. 获取当前时间的后一天开始时间的时间戳以及一个关于日历类的一个编程问题

    1.获取当前时间的后一天 的开始时间 这里需要用到的是常用类库中DateFormat知识点以及Calendar知识点. 首先需要获取当前时间的时间戳,代码如下: long time1 = System ...

  4. Java获取当前时间前10分钟的时间

    Date now = new Date(); Date now_10 = new Date(now.getTime() - 600000); //10分钟前的时间 SimpleDateFormat d ...

  5. 如何使用Java获取当前日期/时间

    用Java获取当前日期/时间的最佳方法是什么? #1楼 采用: String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss") ...

  6. c 获取当前时间插入oracle数据库,Oracle如何获取系统当前时间等操作实例,c++获取系统时间...

    Oracle如何获取系统当前时间等操作实例,c++获取系统时间 获取系统当前时间 date类型的 select sysdate from dual; char类型的 select to_char(sy ...

  7. java获取当前日期时间代码

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 代码如下   Date date = new Date ...

  8. c++ 获取当前时间_【Python】日期和时间

    说明 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间.时间间隔是以秒为单位的浮点小 ...

  9. python time localtimeq获取准确时间_Python时间模块datetime、time、calendar的使用方法

    本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用,希望这篇文章对于学习Python的朋友们有所帮助. 首先就是模块的调用,很多 ...

最新文章

  1. 坑系列 --- 高可用架构的银弹
  2. 高效算法——E - 贪心-- 区间覆盖
  3. Java内存模型深度解析:顺序一致性--转
  4. Spring boot中使用Swagger2
  5. PHP命名空间学习笔记
  6. 本地连接状态 属性按钮消失 解决过程(DCOM配置问题)(原创*转载留名)
  7. freecodecamp_freeCodeCamp的服务器到底发生了什么?
  8. 深度学习入门:Day-11_CNN
  9. esxi存储(外部共享存储)- Open FIle
  10. python response重头开始_用 Python 抓取公号文章保存成 PDF
  11. 51nod 1050 循环数组最大子段和 单调队列优化DP
  12. 【数字信号】基于matlab 8级m序列【含Matlab源码 353期】
  13. arch linux 网卡配置,请问新的arch网络配置文件在哪?或者如何手配ip 子网掩码等...
  14. 计算机控制实验报告组态软件学习,单片机与MCGS组态综合实验系统 教学软件 实训系统...
  15. SyncToy 文件同步工具的定时同步方案(不使用第三方软件)
  16. 统计|(可/无)重复双因素方差分析一般步骤及分析表
  17. chrome下载速度慢,提高下载速度
  18. Html设置网页背景图片
  19. 星瀚资本杨歌,慧聪集团姚永超,腾飞资本任溶 | TO B创业过冬策略,开源节流...
  20. Java 近闻:JDK 20、新的 JEP 草案、JobRunr 6.0、GraalVM 22.3.1

热门文章

  1. 软工之404 Note Found 队选题报告
  2. 微信小程序支付流程(Java后端)
  3. vue移动助手实践(一)——基于vue的换肤功能
  4. 【减肥日记】220斤大体重,10个月减重54.6斤(持续更新)
  5. GPS/北斗模块小小总结
  6. 基于STC89C52单片机的温度控制系统设计方案与软硬件实现
  7. Springboot整合JPA
  8. STM32CUBEIDE使用盗版jlink仿真器
  9. win7右键菜单管理_win7系统控制面板打印机图标消失如何解决【解决方法】
  10. 计算机应用基础第二版中职教案,中职计算机应用基础教案.doc