tzfile - 时区信息
SYNOPSIS
#include <tzfile.h>
DESCRIPTION
时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文件为时区信息文件, 随后六个字节保留未用. 接下来是六个"标准"字节顺序(高位在前)的四字节 long 类型值, 按顺序描述如下:
- tzh_ttisgmtcnt
- 保存在文件中的UTC/local指示器数目.
- tzh_ttisstdcnt
- 保存在文件中的standard/wall指示器数目.
- tzh_leapcnt
- 其值保存在文件中的leap second的数目
- tzh_timecnt
- 其值保存在文件中的"变化时间"数目
- tzh_typecnt
- 其值保存在文件中的"本地时间类型"数目(非零!)
- tzh_charcnt
- 保存在文件中的"时区简写符"数目
跟在上面这些头部后的是 tzh_timecnt 个"标准"字节顺序的四字节 long 类型值, 以升序排序. 每个值均作为一个变化时间(就像 time(2) 的返回), 系统依赖这些值来计算本地时间变化. 而在此之后的是 tzh_timecnt 个 unsigned char 类型的一字节值, 这些值指出了文件中描述的多种"本地时间"类型中哪一个与具有相同索引的变化时间相关. 这些值可作为 ttinfo 结构数组的索引. 而 ttinfo 结构在文件中随后就有定义, 描述如下:
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
结构包括一个"标准"字节顺序的四字节 long 类型值 tt_gmtoff, 以及一个一字节的 tt_isdst 和一个一字节的 tt_abbrind. 在每个结构里, tt_gmtoff 给出了要被加到UTC的时间, 以秒为单位, tt_isdst 表明 tm_isdst 是否可通过 localtime (3) 设置, 而 tt_abbrind 可作为时区简写符的数组索引, 该数组在文件中跟在 ttinfo 结构后面.
这样就有 tzh_leapcnt 个标准字节顺序的四字节对, 每个四字节对的第一个值给出一个leap second发生的时间, 就如 time(2) 的返回; 每个四字节对的第二个值给出给定时间之后所实现的总的 leap second数. 四字节对按时间的升序排序.
同样有 tzh_ttisstdcnt 个standard/wall指示器, 每个保存了一个一字节值; 这些指示器指出了变化时间(与本地时间类型相关)是否被说明为standard time或者wall clock time, 以及当一个时区文件被用于处理POSIX 格式时区环境变量时是否使用变化时间.
最后, 有 tzh_ttisgmtcnt 个UTC/local指示器, 每个保存了一个一字节值; 这些指示器指出了变化时间(与本地时间类型相关)是否被说明为UTC 或者local time, 以及当一个时区文件被用于处理 POSIX格式时区环境变量时是否使用变化时间.
如果 tzh_timecnt 等于零或者时间参数比文件记录的第一个变化时间小的话, Localtime 就使用文件中的第一个标准时间 ttinfo, 或者在没有标准时间结构是就直接使用第一个 ttinfo 结构.
tzfile - 时区信息的更多相关文章
- mysqldump导出数据不带时区信息的问题
今天在导出数据时,发现所有timestamp字段都不带时区信息,因为我在东8区,导出的数据中所有时间都提早了8个小时 首先先看表的字段和数据 CREATE TABLE IF NOT EXISTS `a ...
- Windows中的时区信息
时区 Windows API 没有提供直接得到特定时区信息的功能,Windows 系统中的时区信息存储在注册表中下面的位置: HKEY_LOCAL_MACHINE SOFTWARE ...
- log4net写日志的时间附带时区信息
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fffzzz} [%thread] %-5level %logger - %me ...
- 关于linux中的时间 时区问题
本文部分来源于: http://hi.baidu.com/peruke/blog/item/b8de06ec6a04583b27979132.html 系统是fedora: glibc实现了从RTC ...
- linux 的时区设置函数tzset() 【转】
linux 的时区设置函数tzset() 本文转载于: http://blog.csdn.net/epicyong333/article/details/5258152 tzset #incude & ...
- ISO日期格式标准,浏览器到服务器到mysql中的时区
时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我 ...
- 关于elasticsearch和kibana的时区和日期问题
elasticsearch原生支持date类型,json格式通过字符来表示date类型.所以在用json提交日期至elasticsearch的时候,es会隐式转换,把es认为是date类型的字符串直接 ...
- 时间戳 时区 java mysql
当一个时间 比如2016年5月6日,生成时间戳.这个运算是与时区有关的.首先得确认这个时间是哪个时区的,然后转换成utc时区的时间.再减去1970,得到的秒数,就是时间戳. 时间戳是个一定的值,他与时 ...
- php时区问题
今天遇到一个很诡异的问题: 数据库中存的日期信息为时间戳,用php取出数据库中的日期信息,并用date()函数转化为“Y-m-d”后,发现和mysql格式化函数Date_Format()处理后的结果不 ...
随机推荐
- Vue-cli中的静态资源管理(src/assets和static/的区别)
资源打包 为了回答这个问题,我们需要了解webpack是如何处理静态资源的.在所有的*.vue文件中你所有的templates 和CSS 都被vue-html-loader 和css-loader 查 ...
- 标准模板库(STL)学习探究之Multimap容器
C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素.(具体用法请参考map容器) 函数列表: begin() 返回指向第一个元素的迭代器 cle ...
- 2018-12-2-C#-Span-入门
title author date CreateTime categories C# Span 入门 lindexi 2018-12-02 11:32:46 +0800 2018-06-18 11:1 ...
- 使mysql数据库支持简体中文
永久支持简体中文[root@localhost ~]# vim /etc/my.cnf添加如下四行:[client]default-character-set=utf8 [mysql]default- ...
- codeforces1139E Maximize Mex 二分图匹配
题目传送门 题意:给出n个人,m个社团,每个人都有一个标号,一个能力值,并且属于一个社团,第i天的凌晨,第$k_i$个人会离开.每天每个社团最多派一个人出来参加活动.派出的人的能力值集合为S,求每天$ ...
- 【CodeVS】 纯OI题
[1203] 判断浮点数是否相等 [青铜 Bronze] 我们一般认为两个浮点数相等,当且当他们之间的误差不超过1e-8. /* 作者:Wanying 题目:p1203 判断浮点数是否相等 */ /* ...
- Tomcat 配置访问限制:访问白名单和访问黑名单
最近公司的阿里云服务器上配置的 Tomcat 服务器运行 java的环境,但是通过观察 Tomcat 这几天的日志发现,有很多莫名其妙的 IP 访问主机下莫名其妙的地址,如:/80./testprox ...
- 搭建appium+maven手机自动化测试环境搭建
搭建安卓自动化测试框架记录: 需要的软件: jdk版本:jdk1.8 appium版本:v1.4.16 下载AppiumForWindows.zip (下载appium1.7不需要配置环境变量) no ...
- SpringCloud---分布式服务跟踪---Spring Cloud Sleuth
1.概述 1.1 为什么要用到服务跟踪? 随着业务的发展,系统规模也会变得越来越大,各服务之间的调用关系也变得越来越错综复杂: 通常一个由客户端发起的请求 在后端系统中会经过多个不同的微服务调用 ...
- Delphi CoCreateGuid()函数 获取GUID
Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) GUID/UUID是通过特定算法产生的一个二进制 ...