typedef struct
int year;
int month;
int day;
}date;
typedef stuct
int hour;
int minute;
int second;
}time;
typedef struct
date date;
time time;
}datetime;
// 在時區的定義上,有些時區與格林威治時間相差的時間可能不是整數個小時,可能時乙個半個小時,所以下面用分鐘表示與格林威治時間相差的時間。
const int time_zones =
-60 * 11, // 西11區
-60 * 10 // 西10區
....
}set:
time_a = a時區的時間, time_zone_a = 與格林威治時間相差的時間
則對應的格林威治時間 time_a_gmt = time_a + time_zone_a,
time_a = time_a_gmt - time_zone_a;
所以a,b 兩個時區時間的關係則為 time_b = time_a_gmt - time_zone_b = time_a + time_zone_a - time_zone_b;
// timezone是乙個列舉值,value與time_zones中的陣列下標相對應。
int convertdatetimebetweeentimezones(datetime* p_from_datetime, timezone from_time_zone, datetime* p_to_datetime, timezone to_time_zone )
int minitues = time_zones[from_time_zone] - time_zones[to_time_zone];
if(!p_from_datetime || !p_to_datetime)
return 0;
memcpy(p_to_datetime, p_from_datetime, sizeof(datetime) );
datetimeadd(p_to_datetime, minute, minitues);
return 1;
Python時區轉換
原文 最近工作中遇到了乙個問題 我的server和client不是在乙個時區,server時區是edt,即美國東部時區,client,就是我自己的電腦,時區是中國標準時區,東八區。處於測試需要,我需要向server傳送乙個時間,使得server在這個時間戳去執行一些動作。這個時間戳通常是當前時間加2...
Ruby時區轉換
要將mysql資料庫中的資料,由日本伺服器轉移到美國伺服器。日本伺服器的時區是jst,美國伺服器的時區是pdt。使用了mysql的dump restore,完成匯入後發現,資料庫中的timestamps欄位沒有被正確的轉換,比如原來是日本時間的 2010 7 1 20 14 11 變成了美國太平洋夏...
js時區轉換
頁面伺服器時間是東八區時間,頁面 js 功能需要對比伺服器時間和使用者本地時間,為相容世界各地時間,需要將使用者本地時間轉換為東八區時間。格林威治子午線上的地方時,或零時區 中時區 的區時叫做格林威治時間,也叫世界時。更多詳細的概念不說了,這裡我們不需要。比如我們中國是東八區,北京時間是 gmt 0...