void SetTimeZoneDeal(signed char timeZone)
//void SetTimeZoneDeal(int timeZone)
{
char * p;
char timeZoneStr[32];
timeZone = timeZone;
printf("timeZone =%d\n", timeZone);
if((p=getenv("TZ")))
printf("TZ =%s\n",p);
//timeZone = -7;
if(timeZone < 0)
sprintf(timeZoneStr, "Etc/GMT+%d", -timeZone);
else
sprintf(timeZoneStr, "Etc/GMT-%d", timeZone);
printf("timeZoneStr =%s\n", timeZoneStr);
//setenv("TZ", "Etc/GMT+8", 1);
setenv("TZ", timeZoneStr, 1);
if((p=getenv("TZ")))
printf("TZ =%s\n",p);
/*
system("export TZ=Etc/GMT+6");
if((p=getenv("TZ")))
printf("TZ =%s\n",p);
*/
//printf("......Etc/GMT+8......\n");
}
注意以下几个坑:
1.时区是反过来的,本地时区为Etc/GMT-8.
2.图片水印上的时间是UTC时间。
3.又拍云上认证的时间是UTC时间,不正确的话就会认证失败。
4.char类型是无符号的,singed char才是有符号类型。