您尚未登录。

楼主 # 2024-04-28 12:47:06

memory
会员
注册时间: 2021-08-11
已发帖子: 442
积分: 418

Linux 夏令时测试

因为公司产品出口,有些国家实行夏令时,安排我做测试

欧盟2019会议虽然取消了夏令时/冬令时切换,但是还未正式落地,所以目前还是会切换夏令时/冬令时

首先设置为柏林时间(欧洲中部时间):

rm /etc/localtime -rf && ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

准备测试代码:

#include <stdio.h>
#include <time.h>

int main() {
    time_t current_time;
    struct tm *time_info;

    // Get current time
    time(&current_time);
    time_info = localtime(&current_time);

    // Check if DST is in effect
    if (time_info->tm_isdst > 0)
        printf("夏令时\n");
    else if (time_info->tm_isdst == 0)
        printf("标准时间\n");
    else
        printf("Daylight Saving Time status is unknown.\n");

    return 0;
}
#
#
# date -s "2024-3-31 01:59:55" && /usr/bin/timezone1
Sun Mar 31 01:59:55 CET 2024
标准时间
#
#
#
#
# date
Sun Mar 31 01:59:56 CET 2024
#
#
#
# date
Sun Mar 31 01:59:59 CET 2024
#
#
#
# date
Sun Mar 31 03:00:07 CEST 2024
#
# /usr/bin/timezone1
夏令时
#
#
#

tzdata 是由 INNA 组织维护: https://www.iana.org/time-zones

离线

楼主 #1 2024-04-28 16:21:31

memory
会员
注册时间: 2021-08-11
已发帖子: 442
积分: 418

Re: Linux 夏令时测试

中国曾经实行了6年的夏令时,我们来测试一下:


#
# rm /etc/localtime -rf && ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
#
#
#
# date -s "1985-7-31 01:59:55" && /usr/bin/timezone1
Wed Jul 31 01:59:55 CST 1985
标准时间
#
#
# date -s "1986-7-31 01:59:55" && /usr/bin/timezone1
Thu Jul 31 01:59:55 CDT 1986
夏令时
#
# date -s "1987-7-31 01:59:55" && /usr/bin/timezone1
Fri Jul 31 01:59:55 CDT 1987
夏令时
#
# date -s "1988-7-31 01:59:55" && /usr/bin/timezone1
Sun Jul 31 01:59:55 CDT 1988
夏令时
#
# date -s "1989-7-31 01:59:55" && /usr/bin/timezone1
Mon Jul 31 01:59:55 CDT 1989
夏令时
#
# date -s "1990-7-31 01:59:55" && /usr/bin/timezone1
Tue Jul 31 01:59:55 CDT 1990
夏令时
#
#
# date -s "1991-7-31 01:59:55" && /usr/bin/timezone1
Wed Jul 31 01:59:55 CDT 1991
夏令时
#
#
#
# date -s "1992-7-31 01:59:55" && /usr/bin/timezone1
Fri Jul 31 01:59:55 CST 1992
标准时间
#
#

离线

楼主 #2 2024-04-28 16:23:14

memory
会员
注册时间: 2021-08-11
已发帖子: 442
积分: 418

Re: Linux 夏令时测试

俄罗斯全境现在都是冬令时,不再进行切换:

# rm /etc/localtime -rf && ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
#
#
#
# date -s "1992-7-31 01:59:55" && /usr/bin/timezone1
Fri Jul 31 01:59:55 MSD 1992
夏令时
#
# date -s "2024-7-31 01:59:55" && /usr/bin/timezone1
Wed Jul 31 01:59:55 MSK 2024
标准时间

离线

楼主 #3 2024-04-28 16:24:41

memory
会员
注册时间: 2021-08-11
已发帖子: 442
积分: 418

Re: Linux 夏令时测试

土耳其全境都是夏令时,不再进行切换:

#
#
# rm /etc/localtime -rf && ln -s /usr/share/zoneinfo/Europe/Istanbul /etc/localt
ime
#
#
#
# date -s "2024-7-31 01:59:55" && /usr/bin/timezone1
Wed Jul 31 01:59:55 +03 2024
标准时间
#
#
# date -s "2010-7-31 01:59:55" && /usr/bin/timezone1
Sat Jul 31 01:59:55 EEST 2010
夏令时
#
#

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn