ID:嵌入式情报局

作者:情报小哥

1时间操作

    今天小哥跟大家介绍一下Linux中时间处理重要的几个API函数,在平时的应用程序开发中对于时间的获取、处理都是非常有必要的。

    比如进行日志的记录就需要有相应的时间戳,同时对于不同形式的时间如果进行相互之间的调用和转化也是需要我们非常熟悉的。

    那么小哥今天就从下面几个方面把时间处理这块理一理 :

2时间的转化

    下面是小哥整理的Linux常用时间转化示意图 :  

java 格林威治时间转时间戳 格林威治时间转化_Time

格林威治时间(GMT)

    GMT这里是我们常说的格林威治标准时间(Greenwich Mean Time),初中地理里面应该就学了!

协调世界时间(UTC)

    该时间(Coordinated Universal Time)相比GMT,它与地理位置无关,只是GMT = UTC + 0,数值上是一致的,不过含义不同。

日历时间

     日历时间也叫Unix时间,就是从一个标准时间点(1970年1月1日0时),到此时经过的秒数所表示的时间。

本地时间

    UTC经过时区转化以后的时间。



java 格林威治时间转时间戳 格林威治时间转化_公众号_02

    通过man gmtime可以查找到tm的结构体信息:

java 格林威治时间转时间戳 格林威治时间转化_公众号_03

    上面对于tm_year的描述如果当前是2020年,那么tm_year = 2020 - 1900 ;以及可以通过man 2 time查找到time_t的说明 :

java 格林威治时间转时间戳 格林威治时间转化_获取当前时间转化为字符串_04

Last

程序实例  

java 格林威治时间转时间戳 格林威治时间转化_公众号_05

最后输出的结果 :

java 格林威治时间转时间戳 格林威治时间转化_Time_06

代码解析 :

  • 1 ) 首先使用time函数获得日历时间;
  • 2 ) 使用gmtime把日历时间转化为GMT时间;
  • 3 ) 使用localtime把日历时间转化为当地时间;
  • 4 ) 分别使用字符串函数转化输出;
  • 5 ) 然后使用ctime函数直接把日历时间转化为当地字符串时间输出;
  • 6 ) 最后使用mktime函数分别把GMT和当地时间转化为日历时间。

3最后

    这里小哥就介绍了Linux应用编程中常用几个非常重要的时间API,今天就分享到这里,下期见!