[問題] DST時間有問題

看板C_and_CPP (C/C++)作者 (就是愛希爾)時間12年前 (2014/02/07 19:50), 編輯推噓4(403)
留言7則, 3人參與, 最新討論串1/1
要計算DST的時間(+1小時) 於是先取現在的時間time_t 再把它+3600秒 Time2印出來發現跟Time1一樣,沒有加3600秒 可是我用另外一個time_t的變數 (clock_dst) 去等於clock,再去印時間(Time3) 發現有加一個小時 很好奇為什麼Time2的時間沒有多一小時 而用另外一個變數去等於時,就有多一個小時了!? 謝謝大家 void test() { time_t clock; time(&clock); /* DST */ DEBUG("Time1: %s", ctime(&clock)); clock = clock + 3600; DEBUG("Time2: %s", ctime(&clock)); time_t clock_dst; clock_dst = clock; DEBUG("Time3(%d): %s", (int)clock_dst, ctime(&clock_dst)); } 結果如下: Time1: Fri Feb 7 19:43:39 2014 Time2: Fri Feb 7 19:43:39 2014 Time3(1391777019): Fri Feb 7 20:43:39 2014 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.17.31

02/07 20:22, , 1F
不確定你在哪個平台. 此外 time_t 在 C 標準是實作相依, 不
02/07 20:22, 1F

02/07 20:22, , 2F
一定代表秒數. 不過我跑你的 code 沒問題. 應該有神祕事件?
02/07 20:22, 2F

02/07 23:47, , 3F
一定要用 clock 這麼尷尬的變數名稱嗎? clock_t clock();
02/07 23:47, 3F

02/07 23:49, , 4F
@Feis,我以為time_t 是從 UTC 1970.1.1 經過了多少 "秒",
02/07 23:49, 4F

02/07 23:50, , 5F
還是我還停留在 C++11 前 @@
02/07 23:50, 5F

02/08 00:22, , 6F
time() 傳回 seconds since Epoch 是 POSIX 標準
02/08 00:22, 6F

02/08 00:27, , 7F
原來如此.
02/08 00:27, 7F
文章代碼(AID): #1IzCXr-2 (C_and_CPP)
文章代碼(AID): #1IzCXr-2 (C_and_CPP)