欧美网址在线观看-亚洲最新毛片-国产成人免费爽爽爽视频-亚洲一区在线影院-日韩欧美在线观看视频网站-男女激情四射-成人一区二区免费看-欧美亚洲综合在线-日韩一级视频在线播放-国产成人三级视频在线播放-亚洲中文字幕日产无码2020-99久久久国产精品免费无卡顿-av在线观看地址-果冻传媒mv免费播放在线观看-欧美在线观看视频免费-日韩天天操

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

環球觀速訊丨代碼執行的意思是什么?代碼執行詳情介紹

來源:CSDN 時間:2023-03-10 15:13:13

如上例所示,

代碼段


(資料圖片)

setenv( "TZ", "CST-08", 1 );//設置東八區 北京時間    tzset();//  這條代碼執行的意思是什么?待解決。

轉載:TZ環境變量,時區,夏令時_pirate_sir的博客-CSDN博客_tz環境變量

#include#include#include#include/** *  * 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 <=>w:指一個月中的第幾周(1 <= w <=>d:指一周中的第幾天(0 <= d < =>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;}

#bash中export TZ CST-8 #設置為東八區時間 #c程序中setenv("TZ", "CST-8", 1);

轉載:linux的時區設置函數tzset()_eric_zl_zhang的博客-CSDN博客_linux設置時區函數

本文轉載于:  http://hi.baidu.com/peruke/blog/item/b8de06ec6a04583b27979132.html

tzset#includevoid tzset(void);

設置時間環境變量。 說明 tzset()函數使用環境變量TZ的當前設置把值賦給三個全局變量:daylight,timezone和tzname。 這些變量由ftime和localtime函數使用校正格林威治(UTC)時間為本地時間,通過time函數從系統時間計算UTC,使用如下語法設置TZ環境變量:

set TZ=tzn[+|-]hh[:mm[:ss]][dzn]

tzn:三字母時區名,例如PST,你必須指出本地時間距UTC的偏移量。 hh:UTC與本地時間的時差,任選帶符號的。 mm:分鐘,由冒號(:)與hh分隔開。 ss:秒鐘,用冒號(:)與mm分隔開。 dzn:三字母夏令時時區例如PDT。如果夏令時沒作用,設置TZ時不設置dzn的值。C運行庫假設在計算夏令時(DST)時執行美國的規則。

其實tzn和dzn可為任意3個字母,只要中間的時差設置正確,localtime()和gmtime()函數調用都會處理正確。要注意一點,比如要將時區TZ設置為中國所在的東八區(即UTC+8:00),不使用夏令時,使用如下語句:

setenv("TZ", "GMT-8", 1);

注意是GMT-8而不是GMT+8,要不就設為了西八區,要比UTC還慢8個小時,這一點比較令人費解。

例如,為了設置TZ環境為德國對應的當前時區,你可以使用如下語句之一: set TZ=GST-1GDT set TZ=GST+1GDT 這些字符串使用GST指出德國標準時間,假設德國是超前UTC一個小時,并假設夏令時起作用。 如果TZ值沒設置,tzset試圖使用操作系統指定的時區信息,在Windwos NT和Windows95之下,這個信息指定在控制面版的日期/時間應用中,如果tzset不能獲取這些信息,它缺省使用PST8PDT,它指定為太平洋標準時間。

基于TZ環境變量的值,當調用tzset時把如下值賦給全局變量daylight、timezone和tzname: 全局變量    說明                                                     缺省值 daylight      如果在TZ設置中指定夏令時時區          1則為非0值;否則為0 timezone    UTC和本地時間之間的時差,單位為秒   28800(28800秒等于8小時) tzname[0] TZ環境變量的時區名稱的字符串值        如果TZ未設置則為空 PST tzname[1]   夏令時時區的字符串值;                        如果TZ環境變量中忽略夏令時時區則為空PDT在上表中daylight和tzname數組的缺省值對應于"PST8PDT"。

如果從TZ環境變量忽略DST時區,daylight的值為0,ftime,gmtime和localtime函數對于它們的DST標志返回0。 例子

/ * TZSET.C: This program first sets up the time zone by* placing the variable named TZ=EST5 in the environment* table. It then uses tzset to set the global variables*  named daylight, timezone, and tzname.*/ #include#include#includevoid main( void )  {if( putenv( "TZ=EST5EDT" ) == -1 ) {printf( "Unable to set TZ/n" );exit( 1 ); } else {     tzset(); printf( "daylight = %d\n", daylight );     printf( "timezone = %ld\n", timezone );     printf( "tzname[0] = %s\n", tzname[0] ); } exit( 0 ); }

輸出  daylight = 1  timezone = 18000  tzname[0] = EST

參見 asctime,ftime,gmtime,localtime,time,utime

首先要說明的是我的系統是fedora,其他系統可能不完全相同。

1,時間保存在硬件實時鐘(RTC)中,RTC由主板電池供電,即使關斷電源也不會造成時間丟失。

2,系統啟動時從RTC獲取時間,這個步驟在rc.sysinit中做:

a,首先從/etc/sysconfig/clock中獲取RTC相關參數UTC/ARC/SRM。UTC為true表示RTC保存的時間是UTC時間,false表示保存的是本地時間。ARC與SRM的含義參考hwclock的manpage,一般false即可;

b,根據上面獲取的內容構造hwclock命令的參數,將時間由RTC讀取到系統時鐘。

*需要說明的一點是hwclock的輸出是本地時間,localtime/utc參數只是用來告訴hwclock命令COMS時區是哪個時區。比如Linux系統的系統時區設置為CST(中國標準時間),COMS時間采用墻上時間,即COMS時區也是CST,這時如果使用--utc參數,會讓hwclock誤以為COMS時區為UTC,所以輸出的時間會自動+8。

3,tzset():tzset在程序中用來初始化tzname等全局變量,它首先試圖從環境變量“TZ”中獲取時區,如果TZ環境變量存在,即getenv("TZ")返回值不為NULL,且包含內容有效,則使用TZ值;如果該變量存在但內容無效,比如包含錯誤的時區名字,則使用UTC;如果該變量不存在,即getenv("TZ")返回NULL,則查找系統時區設置文件,一般是/etc/localtime。localtime所指文件的內容格式可參考tzfile(5)。

4,time():返回自00:00:00 UTC, January 1, 1970到現在所經過的秒數,注意,是UTC。

5,ctime()/localtime()/mktime():這類和時區相關的函數內部會調用tzset,但只是第一次調用tzset會做實際初始化,后面的調用都是直接返回。

6,系統關閉時,如執行shutdown/reboot/poweroff/halt等操作后,系統時間會保存到RTC中,這是在halt腳本中完成的,參看/etc/init.d/halt內容。

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 欧美网址在线观看-亚洲最新毛片-国产成人免费爽爽爽视频-亚洲一区在线影院-日韩欧美在线观看视频网站-男女激情四射-成人一区二区免费看-欧美亚洲综合在线-日韩一级视频在线播放-国产成人三级视频在线播放-亚洲中文字幕日产无码2020-99久久久国产精品免费无卡顿-av在线观看地址-果冻传媒mv免费播放在线观看-欧美在线观看视频免费-日韩天天操

        一本久道综合色婷婷五月| 国产麻豆电影在线观看| 中文字幕乱码免费| 国产一级免费大片| 999在线观看| 超碰成人在线免费观看| www.偷拍.com| 成人短视频在线观看免费| 成人区一区二区| 日韩a级在线观看| 美女日批免费视频| 日本老熟妇毛茸茸| 丰满少妇在线观看| 久久久久国产一区| 久久久久久久久久毛片| 男人的天堂avav| 日韩小视频在线播放| 不卡影院一区二区| 亚洲 国产 图片| 韩国无码av片在线观看网站| 欧美视频在线观看视频| 欧美黄网站在线观看| 亚洲黄色av网址| 18视频在线观看娇喘| 日韩av综合在线观看| 亚洲精品视频导航| 粉嫩av一区二区三区天美传媒 | 男人日女人下面视频| 国产又黄又猛又粗又爽的视频| 亚洲 激情 在线| 国产911在线观看| 天天夜碰日日摸日日澡性色av| wwwwww.色| 久久久久久av无码免费网站下载| 久在线观看视频| 色乱码一区二区三区熟女| 欧美三级在线观看视频| 亚洲综合激情视频| 欧美,日韩,国产在线| 一本之道在线视频| 国产裸体舞一区二区三区| 中文字幕一区二区在线观看视频 | 国产亚洲黄色片| 色噜噜狠狠一区二区| 天天夜碰日日摸日日澡性色av| 在线观看免费黄网站| 18禁免费观看网站| 免费看黄色a级片| 精品久久久99| 亚洲欧美激情网| 欧美,日韩,国产在线| 欧美一级爱爱视频| 亚洲综合123| 999精彩视频| 欧美精品色婷婷五月综合| 亚洲爆乳无码精品aaa片蜜桃| 超碰在线公开97| 我看黄色一级片| 男人亚洲天堂网| 精品无码一区二区三区爱欲| 天堂在线精品视频| 黄瓜视频免费观看在线观看www| 日本xxxxxxx免费视频| 男人操女人免费软件| 免费看国产曰批40分钟| 国产av人人夜夜澡人人爽麻豆| 992tv成人免费观看| 好吊色视频988gao在线观看| 亚洲一区二区偷拍| 日本xxxxx18| 国产手机免费视频| 欧洲黄色一级视频| 男人日女人bb视频| 无遮挡又爽又刺激的视频| www.com毛片| 在线免费av播放| 最新av免费在线观看| 久久久精品高清| 国产精品久久久影院| 日本大片免费看| 免费在线观看亚洲视频| 久久久噜噜噜www成人网| 日本新janpanese乱熟| 57pao国产成永久免费视频| 老司机av福利| 成 年 人 黄 色 大 片大 全| 日韩小视频在线播放| 色哟哟精品视频| 国产美女视频免费| 久久国产精品视频在线观看| 99草草国产熟女视频在线| 午夜啪啪小视频| 欧美国产视频一区| 亚洲精品中文字幕无码蜜桃| 欧洲美女亚洲激情| 国精产品一区一区三区视频| 天天操天天爱天天爽| 99亚洲国产精品| 国产一线二线三线在线观看| 男女激烈动态图| 污网站免费在线| 男人天堂a在线| 亚洲一级片av| 久久国产乱子伦免费精品| 韩国黄色一级大片| 午夜免费精品视频| 精品国偷自产一区二区三区| 欧美黄色性生活| 福利视频一二区| 亚洲激情免费视频| 一路向西2在线观看| 黄色免费观看视频网站| japanese在线播放| 97超碰人人爽| 日韩肉感妇bbwbbwbbw| 男人添女人下部高潮视频在观看| 手机在线视频一区| 三级a在线观看| 成人一级片网站| 欧美久久久久久久久久久久久| 日韩av影视大全| 色天使在线观看| 天天干天天草天天| 一级特黄性色生活片| 久久精品视频16| 欧美乱大交xxxxx潮喷l头像| 精品嫩模一区二区三区| av电影一区二区三区| 8x8x成人免费视频| 老司机久久精品| 亚洲三级在线观看视频| 手机版av在线| 国产日本欧美在线| 性生活免费观看视频| 欧美少妇在线观看| 国产激情在线看| 精品国产av无码一区二区三区| 日本美女爱爱视频| 欧美黄网在线观看| 激情伊人五月天| 欧美激情成人网| 一个色综合久久| 亚洲综合激情五月| 成人精品视频在线播放| 免费观看日韩毛片| 午夜激情福利在线| 午夜免费看毛片| 激情视频小说图片| 国产精品久久久久久久乖乖| 亚洲中文字幕无码av永久| 超碰97人人射妻| 爽爽爽在线观看| 国产精品av免费观看| 免费一级特黄特色毛片久久看| 欧美二区在线视频| 青青在线视频免费| 日韩视频一二三| 欧美成人黑人猛交| 精品久久免费观看| 黄色动漫在线免费看| 在线观看免费视频高清游戏推荐| 青娱乐精品在线| 国产福利视频在线播放| 一区二区三区四区毛片| xxxx18hd亚洲hd捆绑| 日韩成人精品视频在线观看| 国产精品国产对白熟妇| 牛夜精品久久久久久久| 福利在线小视频| 亚洲国产日韩欧美在线观看| 久久国产精品网| 日韩欧美理论片| 国产aaa一级片| 日产精品久久久久久久蜜臀| 欧美大尺度做爰床戏| 国产 日韩 欧美在线| 亚洲18在线看污www麻豆 | 亚洲熟妇无码一区二区三区| 中文字幕亚洲乱码| 欧美三级午夜理伦三级| 337p亚洲精品色噜噜狠狠p| 激情五月亚洲色图| 国产免费观看高清视频| 免费的av在线| 天堂av免费看| 91亚洲一区二区| 青青草原国产在线视频| 无码日韩人妻精品久久蜜桃| 黄色一级视频在线播放| 麻豆传媒网站在线观看| www.成人黄色| а 天堂 在线| 激情成人在线观看| 天堂在线精品视频| 爱爱爱爱免费视频| 最新天堂在线视频| 欧美三级午夜理伦三级富婆| 日日摸天天爽天天爽视频| 99精品视频播放| 无码人妻精品一区二区三区66|