代码编织梦想

背景

由于项目需求,自带linux时区文件无法满足需要,虽然/usr/share/zoneinfo/Etc下的时区文件不带夏令时,但是缺少几个时区文件,比如比GMT-0少3个半小时的时区文件,故采用ZIC编辑器生成对应时区文件,使其不带夏令时规则。

创建步骤

1、首先创建一个txt文件,其中包含时区信息,具体规则如下:

Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
NAME:时区的名称,被作为为时区而生成的时间转换文件的名字。
GMTOFF:偏移量,为得到本时区的标准时间而应加到 UTC 时间上的时间量。负值 (即以负号开始)表示要从 UTC 时间上减去的时间量。
RULES/SAVE:规则/补偿,本时区应用的规则的名字,或者是应加到本地标准时间上的时间量 。如果本字段是 - ,则本时区总是用标准时间。
FORMAT:本时区的时区缩写的格式。字符对 %s 表示时区缩写的 。另外,/ 符号(斜扛) 分隔标准时和夏令时的缩写。
UNTIL:是某个位置的 UTC 偏移量或规则改变的时间。

例:Zone GMT+330 -3:30 - GMT

需要注意的是,txt文件最后需要一行空白行结尾

2、使用zic编辑器对其进行编辑,得到对应二进制的时区文件

3、在程序中,采用软链接方式,将时区文件软链接到/etc/localtime,这样采用内核命令date出来的时区信息就会正确。

涉及知识点(有待进一步研究)

1、程序中配置的环境变量(时区环境变量TZ)无法配置到内核中,也即程序中配置的TZ环境变量无法被date命令识别到。
2、date命令查找时区信息,首先找TZ环境变量,其次是找/etc/localtime文件,找不到则以UTC-0时区信息显示。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q793145253/article/details/127152917

lfs8.0完全安装搭建制作教程_jehim的博客-爱代码爱编程

前言 楼主用了半个月才装好,由于软件包不准确浪费了3天的时间,因此搭建的话务必要验证软件包完整性。 内核用了4天,想尽各种方法和可能,结果是iscsi驱动没有包含在内核中,导致每次都开不了机。 下面链接包含软件包和内核,虚拟机是vmware12的,应该可用。主要参考官方文档http://www.linuxf

solaris管理员常用168条命令简明手册(转)-爱代码爱编程

Solaris系统命令中英对照(很长也较全)A ab2admin—对AnswerBook2进行管理的命令行界面 ab2cd—从Documentation CD中运行AnswerBook2服务器 ab2regsvr—向联合域名服务注册AnswerBook2文档服务器 accept、reject—接受或拒绝打印请求 acct—对计数及各种计数命令的概述

solaris 系统管理命令及相关技术中英文对照-爱代码爱编程

Solaris 系统管理命令及相关技术中英文对照[@more@]A ----------------------------------------------------------------------------------- ab2admin—对AnswerBook2进行管理的命令行界面 ab2cd—从Documentation

linux 中如何使用 id 命令_奋斗的工程师的博客-爱代码爱编程

Linux 中如何使用 id 命令 我从cnaaa.com购买了服务器。 在 Linux 中,id 命令用于显示用户的真实有效的用户ID和组ID。 本文我们通过一些例子来介绍一下如何使用 id 命令。 Linux 中

linux外壳程序编程 shell编程 引号详解_睡觉特早头发特多的博客-爱代码爱编程

shell是命令语言、命令解释程序及程序设计语言的统称; shell是一个命令语言解释器,它拥有自己内建的shell命令; Shell(Bash)单引号、双引号和反引号用法详解; 尽量使用 $(命令) 的方式来引用命令的输出,而不要使用反引号。 前言 1.shell变量的定义及其使用 2.位置参数和环境变量 3.shell中的特殊字符 目

python 代码 c 执行_xiaoma_bk的博客-爱代码爱编程

python C python 路径 当我们导入一个模块时:import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。 临时添加路径 sys.path 返回的是一个列表,该路

centos7 kibana-7.16.3部署_小冰-helloworld的博客-爱代码爱编程

tar -zxvf kibana-7.16.3-linux-x86_64.tar.gz mv kibana-7.16.3-linux-x86_64 kibana-7.16.3 #可以用创建es的账户 useradd es chown -R es:es /opt/kibana-7.16.3 su es #配置文件 kibana.yml server.po

grafana api---这个api令我发愁!_酒千殇的博客-爱代码爱编程

文章目录 序言Create API tokensFolder HTTP APIDashboard HTTP APIIdentifier (id) 和 unique identifier (uid)的区别 Aler

deepin20安装mysql8最新版_荒野雄兵的博客-爱代码爱编程

前言 电脑:组装台式机 系统:Deepin20.6 MySQL版本:8.0.30(适用于任何最新版) 网上有很多的安装方式,也有很多的博客讲怎么安装,但是基本上都是一知半解,装的时候老是出问题。作为一个多年的老程序员,今天

[linux]使用centos镜像与rpm来安装虚拟机软件_清水寺丞的博客-爱代码爱编程

  目录   一、前言 二、步骤 一、连接镜像文件  二、将需要的RPM文件移动到虚拟机上 三、安装rpm软件包 一、前言 本文使用的是CentOS的VM ware虚拟机 二、步骤 一、连接镜像文件 双击虚拟机右下角,打开虚拟机配置菜单 选中蓝圈中选项  选择使用ISO镜像文件(博文用的是CentOS-6.7-x8