Linux 时区设置函数 tzset()【man 3 tzset】

news2025/1/18 2:09:24

1. NAME(名)

tzset, tzname, timezone, daylight - 初始化时间转换信息

2. SYNOPSIS(概要)

#include <time.h>

void tzset(void);

extern char *tzname[2];
extern long timezone;
extern int daylight;

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

tzset(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
tzname: _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
timezone: _SVID_SOURCE || _XOPEN_SOURCE
daylight: _SVID_SOURCE || _XOPEN_SOURCE

3. DESCRIPTION(函数描述)

tzset()从TZ环境变量中取出相应字段初始化全局变量tznametzset()会被时区相关的时间转换函数自动调用。在类System-V系统中,tzset()还将设置全局变量timezone(UTC以西的秒数)和daylight(如果该时区没有任何夏令时规则,则设置为0;如果存在夏令时规则,则设置为非0。)

如果未设置TZ环境变量,则使用系统时区。通过将tzfile(5)格式的文件复制或链接到/etc/localtime来配置系统时区。这些文件的时区数据库可能位于系统时区目录中(请参阅下面的FILES小节)。如果TZ变量确实出现在环境中,但其值为空,或者其值无法使用下面指定的任何格式进行解析,则使用协调世界时(UTC),即UTC+0。

环境变量TZ的值有两种格式。第一种格式使用直接表示时区的字符串:

std offset[dst[offset][,start[/time],end[/time]]]

① 要注意上述格式中没有空格,std和其后offset之间的空格只是为了方便读者阅读而被鄙人故意加上的。
② std字符串指定时区的缩写,并且必须是三个或三个以上的字母字符,可随意起名。当使用尖括号括住std时,除字母外,字符集将扩展为包含加号(+)、减号(-)和数字。
③ offset,指定本地时间相对UTC+0的偏移。如果当地时区位于本初子午线的西面,则偏移量为正,如果位于东面,则偏移为负。小时必须介于0 - 24之间,分钟和秒必须介于00 - 59之间:[+|-]hh[:mm[:ss]]
④ dst[offset]指定夏令时时区名称和偏移量,格式和std offset无异。如果dst存在而offset缺省,则会默认比标准时间快1小时。
⑤ start字段指定夏令时生效日期,end字段指定恢复到标准时间的日期。这些字段可能具有以下格式:

  • Jn:J为指示符,n的取1 - 365的儒略日(Julian day),不考虑闰年(Leap year),闰日(Leap day,即2月29日)不计算在内。2月28日是一年中的第59天,3月1日总是一年内的第60天,这种格式无法表示2月29日。
  • n:n取0 - 365的儒略日,2月29日会在闰年计数。全网发问:“好兄弟,请教个问题,n表示0 - 365的儒略日时,闰年的2月28 n=? 非闰年的2月28 n=?”
    2024.06.18 验证如下:
  • Mm.w.d:M为指示符,m月(1<=m<=12)第w周(1<=w<=5)的第d天(0<=d<=6)。d=0是周日,d=1是周一,d=6是周六。

⑥ /time字段指定当前时间对夏时制的生效或结束时间。“/”是日期和时间的分隔指示符,time格式为/hh:mm:ss。如果缺省,则默认值为02:00:00,凌晨2点整。

举个例子就明白了:
TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0/03:00:00,M3.3.0/03:00:00"

  • NZST 表示新西兰标准时间。
  • -12:00:00 表示比UTC早12小时。
  • NZDT 表示新西兰夏时制时间。
  • -13:00:00 表示夏时制时间比UTC早13小时(即比标准时间快1小时)。
  • M10.1.0/03:00:00 表示夏时制从10月第1个星期日凌晨3点开始。(不奇怪,新西兰是南半球国家)
  • M3.3.0/03:00:00 表示夏时制到3月第三个星期日凌晨3点结束。

第二种设置环境变量TZ的格式:从指定文件中读取时区信息

:[filespec]

指定获取时区的文件,A:filespec指向了一个tzfile(5)格式的文件。如果省略了filespec或filespec无法解析则使用协调世界时(UTC+0)。B:如果filespec路径不是以’/’开头(绝对路径),则在系统时区目录(/usr/share/zoneinfo/)下查找对应文件。如果冒号被省略,则A、B都将被系统尝试。
举个例子就明白了:
TZ=":Pacific/Auckland"(太平洋/奥克兰,新西兰第一大城市,风帆之都)

  • 指定在系统时区数据库目录(/usr/share/zoneinfo/)下查找Pacific/Auckland文件,作为获取时区信息文件。

4. ENVIRONMENT (相关环境变量)

TZ:如果设置了此变量,则其值优先于系统配置的时区(即/etc/localtime)。
TZDIR:如果设置了此变量,则其值优先于系统配置的时区数据库目录路径(即/usr/share/zoneinfo/)。

5. FILES(文件)

  • /etc/localtime:系统时区文件,一般链接到某个具体的tzfile(5)格式时区文件。符合特定语法的文本文件经zic编译生成tzfile(5)格式的时区信息文件。
  • /usr/share/zoneinfo/:系统时区数据库目录。
  • /usr/share/zoneinfo/posixrules:当TZ变量包含DST时区,但未规定开始和结束时间时,则使用该文件规则规定DST的开始和结束时间。

以上是当前的标准文件路径,但是在编译glibc(tzfile.h)时可以配置它们。

6. CONFORMING TO(符合的规范)

POSIX.1-2001   POSIX.1-2008   SVr4   4.3BSD

7. NOTES(注意事项)

4.3BSD有一个函数char *timezone(zone, dst),返回与第一个参数(UTC以西的分钟数)相对应的时区名称。如果第二个参数为0,则使用标准名称,否则使用夏令时版本。

8. SEE ALSO(另请参阅)

date(1)   gettimeofday(2)   time(2)   ctime(2)   getenv(3)   tzfile(5)

9. COLOPHON(书籍的末页,出版社名称)

此页面是Linux man-pages项目4.04版本的一部分。项目描述、bug报告以及此页面的最新版本,可访问http://www.kernel.org/doc/man-pages/.

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

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

相关文章

Uniapp在屏幕尺寸低于960出现样式错乱(开箱即用)

我司项目突然要做平板兼容,我在调试的时候发现当屏幕尺寸低于960px发现样式但凡是以rpx单位的全部失效&#xff0c;如果是以px为单位那么影响就比较小&#xff0c;当时解决方案是写了不少媒体查询和把单位rpx改成px&#xff0c;后面查阅文档发现大错特错宽屏适配只需一行代码即…

2024.06.22 刷题日记

199. 二叉树的右视图 这道题目的思路就是层次遍历&#xff0c;然后每次处理每一层所有的元素&#xff0c;如果是第一个就收集到答案中&#xff1a; class Solution { public:vector<int> rightSideView(TreeNode* root) {if (!root)return {};queue<TreeNode*> q…

Kubernetes Ingress 简介

前言 Ingress 是 Kubernetes 中的一种资源对象&#xff0c;用于管理从集群外部到内部服务的 HTTP 和 HTTPS 路由。它提供了灵活的路由功能、SSL/TLS 终止、负载均衡和虚拟主机支持。Ingress 需要一个 Ingress 控制器来实际处理路由&#xff0c;并且可以通过配置不同的控制器来…

这4个手机应用,让你的生活工作更加方便

MillimeterPro MillimeterPro是一款适用于iPhone或iPad的测量工具应用&#xff0c;用户可以通过触摸屏快速进行长度测量、分割物体、测量物体比例&#xff08;W/H&#xff09;和面积等操作。 这款应用程序是一个多功能的测量工具&#xff0c;它可以帮助您在手机或平板电脑的屏…

(经验)高考填报志愿,有哪些坑你需要避开?

高考年年考&#xff0c;填报志愿的却年年都是新手.....哪些关于高考填报志愿的坑&#xff0c;依旧还继续坑....是时候做些改变了。过来人写的几点避坑&#xff0c;希望给这届新人做参考。 1、不要什么热门就报什么&#xff0c;因为有些东西别人学得很快&#xff0c;而我慢的像蜗…

示例:WPF中使用IsAsync的方式绑定数据来优化用户体验

一、目的&#xff1a;开发过程中&#xff0c;有时需要绑定大量数据&#xff0c;比如弹出一个窗口&#xff0c;窗口中包含一个ListBox绑定了大量数据&#xff0c;这时会出现点击按钮后出现假死卡顿影响用户体验&#xff0c;这理通过用IsAsync的方式将窗口优先弹出来再加载数据 二…

mysql高级语句2存储过程

CREATE VIEW 视图&#xff0c;可以被当作是虚拟表或存储查询。 视图跟表格的不同是&#xff0c;表格中有实际储存数据记录&#xff0c;而视图是建立在表格之上的一个架构&#xff0c;它本身并不实际储存数据记录。 临时表在用户退出或同数据库的连接断开后就自动消失了&…

计算机网络 静态路由及动态路由RIP

一、理论知识 1.静态路由 静态路由是由网络管理员手动配置在路由器上的固定路由路径。其优点是简单和对网络拓扑变化不敏感&#xff0c;缺点是维护复杂、易出错&#xff0c;且无法自动适应网络变化。 2.动态路由协议RIP RIP是一种基于距离向量的动态路由协议。它使用跳数作…

Unity Meta Quest 开发:关闭 MR 应用的安全边界

社区链接&#xff1a; SpatialXR社区&#xff1a;完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 &#x1f4d5;教程说明 这期教程我将介绍如何在应用中关闭 Quest 系统的安全边界。 视频讲解&#xff1a; https://www.bilibili.com/video/BV1Gm42157Zi 在 Unity…

示例:推荐一个应用Adorner做的表单对话框

一、目的&#xff1a;开发过程中经常会修改和查看一个Model的数据&#xff0c;一般情况下会自定义一个控件或Window去显示Model数据&#xff0c;但这种数据如果比较多会增加很多开发工作&#xff0c;本文介绍一种通用的方式&#xff0c;应用表达Form控件去简化处理&#xff0c;…

如何在Qt Designer中管理QSplitter

问题描述 当按下按钮时&#xff0c;我希望弹出一个对话框&#xff0c;用户可以在其中选择内容并最终按下 ‘Ok’ 按钮。我想在这个对话框中放置一个 QSplitter&#xff0c;左侧面板将显示树状结构&#xff0c;右侧将显示其他内容。如何正确实现这一点&#xff1f; 从 Qt 的示…

AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?

文章目录 一、ChatGPT在金融策略制定中的深度应用客户需求分析与定制化策略市场动态跟踪与策略调整策略分析与优化 二、ChatGPT在算法交易中的深度应用自动交易策略制定交易执行与监控风险管理 三、未来展望《智能量化&#xff1a;ChatGPT在金融策略与算法交易中的实践》亮点内…

说说 SSL 的错误认识和不足之处

最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站&#xff0c;近一周的折腾下来&#xff0c;收获真的不少&#xff0c;致使兴趣也越来越浓了&#xff0c;在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…

Android面试题之动画+事件处理篇

1、Android 中的动画有哪几类 帧动画、补间动画、属性动画 2、动画能组合在一起使用么&#xff1f; 可以将动画组合在一起使用AnimatorSet&#xff0c; AnimatorSet.play() 播放当前动画的同时可以 .with() &#xff1a;将现有动画和传入的动画同时执行 .after() &#xff1a…

神经网络与深度学习 - 神经网络基础

1.2 神经网络基础 学习目标 知道逻辑回归的算法计算输出、损失函数知道导数的计算图知道逻辑回归的梯度下降算法知道多样本的向量计算 应用 应用完成向量化运算应用完成一个单神经元神经网络的结构 1.2.1 Logistic回归 逻辑回归是一个主要用于二分分类的算法。给定一个特…

Altera不同系列的型号命名规则

Altera芯片型号&#xff1a;10AX07H4F34I3SG 20nm工艺 资源&#xff1a; 大数据 云计算 人工智能 图像处理 MSEL

OS复习笔记ch12-1

文件系统 概述 文件是大多数应用程序的核心要素&#xff0c;文件系统是操作系统对用户来说最重要的部分之一。 本章的主要内容见下图&#xff1a; 文件&#xff0c;大家耳熟能详的就是的docx、pdf、jpg、MP4等各种后缀文件&#xff0c;根据任务需要文件又分成了文本、图片、…

c++ 中如何往 string 字符串类型里插入浮点数

谢谢&#xff0c;在看王老师课程时&#xff0c;有如此用法&#xff0c;单独拿出来记录一下 (2) 这是为什么呢&#xff1f; 其实 cout << 3.33 ; 这样的代码是可以直接编译通过。 cout 就是 ostream 类型的对象。此类对象可以保存任何类型的数据。 STL 库为我们写好了大量…

Linux 五种IO模型

注&#xff1a;还有一种信号驱动IO&#xff0c;使用较少暂不讨论&#xff1b; 一&#xff0c;区分阻塞、非阻塞和同步、异步 看了很多文章对这两组概念解释和对比&#xff0c;说的太复杂了&#xff0c;其实没必要&#xff0c;两句话就能说清楚。 首先&#xff0c;对于读数据rec…

黑马苍穹外卖6 清理redis缓存+Spring Cache+购物车的增删改查

缓存菜品 后端服务都去查询数据库&#xff0c;对数据库访问压力增大。 解决方式&#xff1a;使用redis来缓存菜品&#xff0c;用内存比磁盘性能更高。 key :dish_分类id String key “dish_” categoryId; RestController("userDishController") RequestMapping…