時區轉換函式

2021-06-04 02:00:10 字數 1156 閱讀 8820

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...