TDateTime轉UTC的時間差

2022-03-20 20:00:44 字數 1655 閱讀 2918

需求:返回用分鐘表示的主計算機上的時間和全球標準時間 (utc) 之間的時間差,如:2010-01-10 09:07:54,與utc之間的時間差應為:1263085674.

呼叫方法:

gettimezoneoffset(strtodatetime('2010-01-10 09:07:54'));

實現**:

//功能:獲取本機時間區

function gettimezone:integer;

var

m_timezone:time_zone_information;

i:integer;

dtimezone:double;

itimezone:integer;

begin

gettimezoneinformation(m_timezone);

i := m_timezone.bias;

dtimezone := -1 * (i / 60);

itimezone := trunc(dtimezone);

result := itimezone;

end;

//功能:返回用分鐘表示的主計算機上的時間和全球標準時間 (utc) 之間的時間差,

function gettimezoneoffset(adatetime:tdatetime):extended;

var

x,y : extended;

iyear,imonth,iday : word;

ihour,imin,isec,imsec : word;

itimezone : integer;

begin

itimezone := gettimezone;

decodedatetime(adatetime,iyear,imonth,iday,ihour,imin,isec,imsec);

x := (encodedate(iyear,imonth,iday) - encodedate(1970,1,1)) * 86400;

y := ihour * 3600 + imin * 60 + isec;

x := x + y - (itimezone * 3600);

result := x;

end;

//功能:將utc時間值轉為成當前系統時間

function utctime2string(uitime:cardinal):string;

var

sdatetime : tdatetime;

itimezone : integer;

begin

itimezone := gettimezone;

sdatetime := encodedate(1970,1,1) + ((uitime + itimezone * 3600) / 86400);

result := formatdatetime('yyyy-mm-dd hh:mm:ss',sdatetime);

end;

協調世界時 UTC

utc是協調世界時 universal time coordinated 的英文縮寫,是由國際無線電諮詢委員會規定和推薦,並由國際時間局 bih 負責保持的以秒為基礎的時間標度。utc相當於本初子午線 即經度0 上的平均太陽時,過去曾用格林威治平均時 gmt 來表示。那麼utc與世界各地的時間應如何...

協調世界時 UTC

協調世界時 utc 又稱世界標準時間或世界協調時間,簡稱utc 從英文 coordinated universal time 法文 temps universel cordonn 而來 是最主要的世界時間標準,其以原子時秒長為基礎,在時刻上盡量接近於格林尼治平時。中國大陸採用iso 8601 200...

QDateTime 本地時間和UTC時間轉換問題

先說一下utc,搜尋360百科 協調世界時,又稱世界統一時間 世界標準時間 國際協調時間,簡稱utc,是以原子時秒長為基礎,在時刻上盡量接近於世界時的一種時間計量系統。1979年12月3日在內瓦舉行的世界無線電行政大會通過決議,確定用 世界協調時間 取代 格林威治時間 作為無線電通訊領域內的國際標準...