linux 时间与时间介绍_中国标准时间和时间中带tz有什么区别

time_t mktime(struct tm **timeptr*

  


);  


  




  


struct tm *localtime(const time_t **timer*

  


);  


  




  


struct tm *gmtime(const time_t **timer*

  


);

  



mktime 是将一个tm*结构转换成自1970/1/1 00:00:00(GMT+0)到当前与tm相对应的GMT当前时间的秒数。此函数受到环境变量TZ的影响。

例如:当前的tm是:1970/1/1-16:00:00,TZ是东八区(由此可知GMT+0的时间是8:00AM)

struct tm local;
   area = &local;
   area->tm_year = 70;
   area->tm_mon = 0;
   area->tm_mday = 1;
   area->tm_hour = 16;
   area->tm_min = 0;
   area->tm_sec = 0;
   area->tm_isdst = 0;

那么我们最后调用mktime的结果是:(16-8)*3600 = 28800;

localtime这个函数由它的名字可知它是将一个表示GMT+0的标准时间转换成本地时区的时间。

例如timer 的值是上面的28800, 并且当前的TZ设置成东六区,那么我们的本地时间就是(28800/3600+6)=14点。意思:28800表示当前GMT+0是8:00AM, 那么GMT+6(东六)本地所在的时间就是下午2点。

最后是gmttime,它不受到TZ变量的影响,参数timer表示自1970/1/1-0:0:0(GMT+0)到某一个GMT+0时间点的秒数。gmtime的运算结果就是这个GMT+0时区的这个时间点。

例如timer = 28800,那么当地的时间就是1970/1/1-08:00:00 AM.

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

### 配置Docker容器时间同步 为了使 Docker 容器的时间宿主机保持一致,在 Linux 环境下可以采用多种方式来实现这一目标。 #### 方法一:挂载宿主机的时区文件 一种常见的方式是通过挂载宿主机上的 `/etc/localtime` 文件至容器内相同路径,以此确保两者拥有相同的本地时间设置。对于那些也支持 `/etc/timezone` 的发行版来说,则同样应该将其一同挂载进去[^4]: ```bash docker run -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ your_image_name ``` 需要注意的是,并不是所有的 Linux 发行版本都提供有 `/etc/timezone` 这样的文件;例如 CentOS 并未默认包含它。 #### 方法二:利用 `docker cp` 命令手动复制时区信息 另一种解决方案涉及到了使用 `docker cp` 来把宿主机上特定地区的时区数据拷贝进入正在运行着的目标容器内部作为其新的 `/etc/localtime` 文件。这里以亚洲上海为例说明操作流程[^5]: ```bash docker cp /usr/share/zoneinfo/Asia/Shanghai container_id:/etc/localtime ``` 此命令会将指定位置处代表中国标准时间 CST (UTC+8) 的时区定义覆盖掉原有容器内的相应设定,从而达到调整目的的效果。 #### 方法三:在启动参数中加入环境变量 还可以考虑借助于向容器传递适当配置项的形式完成初始化工作——即当创建新实例之时便指明期望遵循哪一时区规则。这通常意味着要为 `-e TZ=Region/City` 参数赋予恰当取值[^1]: ```bash docker run -e TZ=Asia/Shanghai your_image_name ``` 这样做之后,即使是在不同地区部署的应用程序也能按照预设条件正确显示并处理涉及到具体时刻的信息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值