增加非标准utc时区

This commit is contained in:
wen
2025-11-15 20:16:32 +08:00
parent d24873566d
commit dc23296425
7 changed files with 176 additions and 23 deletions

View File

@@ -3389,8 +3389,96 @@ void mcu_write_rtctime(unsigned char time[])
//=0是utc+0
//<0是utc-
//>0是utc+
char zone=(char)((Localtime-standardtime)/3600);
printf("zone:%d\r\n", zone);
char zone=(char)((Localtime-standardtime)/3600);//标准时区
int zone_offset=((Localtime-standardtime)%3600);//处理5:30 6:30等等非准标时区
printf("zone:%d;zone_offset:%d\r\n", zone,zone_offset);
if( (zone<=-13) || (zone>=13) )
{
return;
}
//限制在-12~12之间
//判断是不是标准时间
if(zone==-12)
{
SET_nvs_Sys_Info_tzzone(0);
}else if(zone==-11)
{
SET_nvs_Sys_Info_tzzone(1);
} else if(zone==-10)
{
SET_nvs_Sys_Info_tzzone(2);
} else if(zone==-9)
{
if(zone_offset!=0)//zone_offset=1800 -1800 -9:30
{
SET_nvs_Sys_Info_tzzone(3);
}
else
{
SET_nvs_Sys_Info_tzzone(4);
}
} else if(zone==-8)
{
SET_nvs_Sys_Info_tzzone(5);
} else if(zone==-7)
{
SET_nvs_Sys_Info_tzzone(6);
} else if(zone==-6)
{
SET_nvs_Sys_Info_tzzone(7);
} else if(zone==-5)
{
SET_nvs_Sys_Info_tzzone(8);
} else if(zone==-4)
{
if(zone_offset!=0)//zone_offset=1800 -1800 -4:30
{
SET_nvs_Sys_Info_tzzone(9);
}
else
{
SET_nvs_Sys_Info_tzzone(10);
}
} else if(zone==-3)
{
if(zone_offset!=0)//zone_offset=1800 -1800 -3:30
{
SET_nvs_Sys_Info_tzzone(11);
}
else
{
SET_nvs_Sys_Info_tzzone(12);
}
} else if(zone==-2)
{
if(zone_offset!=0)//zone_offset=1800 -1800 -2:30
{
SET_nvs_Sys_Info_tzzone(13);
}
else
{
SET_nvs_Sys_Info_tzzone(14);
}
} else if(zone==-1)
{
SET_nvs_Sys_Info_tzzone(15);
}
else if(zone>=0)
{
if(zone_offset==1800)
{
SET_nvs_Sys_Info_tzzone(zone*3+17);
}
else if(zone_offset==2700)
{
SET_nvs_Sys_Info_tzzone(zone*3+18);
}
else
{
SET_nvs_Sys_Info_tzzone(zone*3+16);
}
}
struct timeval tv;
//tv.tv_sec=(time_t)Localtime;//用本地时间 时区要设置0 相对0时区的时间
@@ -3406,7 +3494,6 @@ void mcu_write_rtctime(unsigned char time[])
my_memcpy((void *)timestamp,(const char *)time,4); //get timestamp
zigbee_timestamp_to_time();
SET_nvs_Sys_Info_tzzone(zone);
nvs_eepom_sysInfo_update();
//更新时区信息