TZ环境变量,时区,夏令时
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#include <unistd.h>/*** * TZ环境变量,时区,夏令时* 当前demon测试环境: 1.32为系统; 2.系统时区是UTC。*
*/int main()
{time_t now = 0; char * TZ = NULL; struct tm *tm_ = NULL; struct timeval tval = {0,0}; struct timezone tzone = {0,0};TZ = getenv("TZ");printf("====================================> TZ = %s\n", TZ == NULL?"env TZ not seted" : TZ );now = time(NULL); //1970到现在的UTC时间的秒数;printf("time_t = %ld, ctime: = %s", now, ctime(&now) ); //char* ctime(const time_t *timer)返回一个表示当地时间的字符串(包含一个换行符),当地时间是基于参数 timer。gettimeofday(&tval, &tzone);printf("gettimeofday tval.tv_sec = %d, tval.tv_usec = %d; tzone.tz_minuteswest = %d, tzone.tz_dsttime = %d.\n", \tval.tv_sec, tval.tv_usec, tzone.tz_minuteswest, tzone.tz_dsttime);tm_ = gmtime(&now); //转换成UTC世界时间printf("gmtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); tm_ = localtime(&now); //转换成本地时间printf("localtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); printf("\n");setenv("TZ", "CST-8", 1);//设置时区(中国东八区)TZ = getenv("TZ");printf("====================================> TZ = %s\n", TZ == NULL?"env TZ not seted" : TZ );now = time(NULL);printf("time_t = %ld, ctime: = %s", now, ctime(&now) ); gettimeofday(&tval, &tzone);printf("gettimeofday tval.tv_sec = %d, tval.tv_usec = %d; tzone.tz_minuteswest = %d, tzone.tz_dsttime = %d.\n", \tval.tv_sec, tval.tv_usec, tzone.tz_minuteswest, tzone.tz_dsttime);tm_ = gmtime(&now); printf("gmtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); tm_ = localtime(&now); printf("localtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); printf("\n");setenv("TZ", "NZST-12:00:00", 1);//设置时区(新西兰标准时间) TZ = getenv("TZ");printf("====================================> TZ = %s\n", TZ == NULL?"env TZ not seted" : TZ );now = time(NULL);printf("time_t = %ld, ctime: = %s", now, ctime(&now) ); gettimeofday(&tval, &tzone);printf("gettimeofday tval.tv_sec = %d, tval.tv_usec = %d; tzone.tz_minuteswest = %d, tzone.tz_dsttime = %d.\n", \tval.tv_sec, tval.tv_usec, tzone.tz_minuteswest, tzone.tz_dsttime);tm_ = gmtime(&now); printf("gmtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); tm_ = localtime(&now); printf("localtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); printf("\n");/*** * NZDT-13:00:00,M10.1.0,M3.3.0* * NZST,表示新西兰标准时间;* * -12:00:00表示比UTC早12小时;* * NZDT,表示新西兰夏时制时间;* * -13:00:00,表示夏时制时间比UTC早13小时(即比标准时间快1小时);* * M10.1.0,M3.3.0表示夏令时从10月第一个星期日02:00:00开始到3月第三个星期日02:00:00结束。* ==>m:指一年中的第几月(1 <= m <= 12)。* ==>w:指一个月中的第几周(1 <= w <= 5),1表示第一周,5表示最后一周。* ==>d:指一周中的第几天(0 <= d <= 6),0表示星期天。* ==>time:该字段表示本地时间对夏时制生效或结束的时间,如果省略默认为02:00:00。* */setenv("TZ", "NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0", 1);//设置时区(新西兰夏令时时间) TZ = getenv("TZ");printf("====================================> TZ = %s\n", TZ == NULL?"env TZ not seted" : TZ );//while(1){now = time(NULL);printf("time_t = %ld, ctime: = %s", now, ctime(&now) ); gettimeofday(&tval, &tzone);printf("gettimeofday tval.tv_sec = %d, tval.tv_usec = %d; tzone.tz_minuteswest = %d, tzone.tz_dsttime = %d.\n", \tval.tv_sec, tval.tv_usec, tzone.tz_minuteswest, tzone.tz_dsttime);tm_ = gmtime(&now); printf("gmtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); tm_ = localtime(&now); printf("localtime: dstflag = %d, %d-%d-%d %d:%d:%d\n",tm_->tm_isdst, tm_->tm_year + 1900, tm_->tm_mon+1, tm_->tm_mday, tm_->tm_hour, tm_->tm_min, tm_->tm_sec); printf("\n");sleep(5);}return 0;
}
TZ环境变量,时区,夏令时相关推荐
- Linux中有关时区及夏令时设置(TZ环境变量)
一.相关内容 Glibc中存储时间转换信息的有:tzname.timezone.daylight三个全局变量,声明在time.h中. Glibc中关于时区设置的函数有:tzset(),声明在time. ...
- 关于时区的环境变量TZ
我们在Linux中设置时区的时候通常是通过设置TZ环境变量达到目的: #bash中 export TZ CST-8 #设置为东八区时间#c程序中 setenv("TZ", &quo ...
- RHEL6基础之六RHEL6基本命令bash常用快捷键变量环境变量命令的返回值
命令帮助信息获取 sh 执行脚本 -x选项来查看这个脚本执行过程的 [root@localhost ~]# sh 1.sh [root@localhost ~]# sh -x 1.sh [root@l ...
- MySql环境变量说明
服务器将维护许多表示其配置的系统变量.所有变量均有默认值.可以在命令行中或选项文件设置选项在服务器启动时对它们进行设置.大多数可以在运行时使用SET语句来设置. mysqld服务器维护两种变量.全局变 ...
- Linux下设置时区(通过shell设置和程序中设置)及程序中设置环境变量
Shell中设置 bash中 export TZ="Europe/Moscow" date -u -s "2011-10-29 21:55:00&quo ...
- linux mktime函数会受当前环境变量设置的时区影响
mktime函数会受当前环境变量设置的时区影响, 比如tm初始化为 1970-1-1 00:00:00, 如果设置的是UTC时区 mktime 输出 0 如果设置的是Shanghai时区 mktime ...
- Linux实用操作:小技巧(快捷键)、软件安装、systemctl、软连接、日期时区、IP地址、主机名、网络传输、端口、进程管理、主机状态、环境变量、上传、下载、压缩和解压
版本说明 当前版本号[20230415]. 版本 修改说明 20230415 初版 本课程的笔记已经更新完毕,各位可以通过点击黑马程序员2023年新版Linux零基础快速入门到精通>学习笔记总目 ...
- linux超级基础系列——shell变量(本地变量和环境变量)
linux超级基础系列--shell变量(本地变量和环境变量) 2006-12-04 00:39 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存诸如路径名.文件名或者一 ...
- freebsd环境变量设置
命令解释程序 shell是与用户关系最密切的应用程序,用户主要通过shell使用系统.在每次登录系统之后,就启动了一个与用户交互的shell,这个shell将给出一个提示符等待用户输入,(sh为 &q ...
最新文章
- FastDFS安装与使用
- bzoj1875 边点互换+矩乘
- 中object转为list集合_java基础集合小结
- Mac下Idea安装Git报错Xcrun问题的解决
- 详解string容器(应用+模拟实现,string练习题)
- LeetCode 519. 随机翻转矩阵(哈希)
- 嵌入式中常见的存储器总结(二)SRAM VS DRAM
- MYSQL MVCC 实现机制
- FIREDAC(DELPHI10 or 10.1)提交数据给ORACLE数据库的一个不是BUG的BUG
- 企业如何进行数据挖掘
- Python语言学习 (二)1.1
- Symmetric Tree
- (VUM验证学习11) 使用ahb vip对GPIO进行验证框架搭建,寄存器模型集成和测试点拆解编写
- 开机加速——在注册表里禁止开机自检硬盘
- HashSet及LinkedHashSet源码分析(基于JDK1.6)
- xcode没有Products的解决方法
- WPS如何提取身份证中的出生日期
- 神策杯 2018高校算法大师赛(个人、top2、top6)方案总结
- Vsftpd配置文件解析
- 原生js 获取页面宽度