Delphi获取格林威治时间并转换到北京时间

uses Winapi.msxml, System.DateUtils;

//实时获取网络时间的函数, 得到的是格林威治时间; 默认从 sohu 服务器获取, 因为它最快, 平均只需 15 

毫秒function GetNetTime(aUrl: WideString = 'http://www.sohu.com'): string;
begin
  with CoXMLHTTP.Create do
  beginopen('Post', aUrl, False, EmptyParam, EmptyParam);
    send(EmptyParam);
    Result := getResponseHeader('Date');
  end;
end;

//格林威治时间(字符串)转换到北京时间function GMT2BjDateTime(const GMT: string): TDateTime;
var
  A: TArray<string>;
begin
  A := GMT.Split([',', ' '], ExcludeEmpty); //XE4 支持

  with TStringList.Create dobeginCommaText := 

'Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12';
    A[2] := Values[A[2]];
    Free;
  end;

  Result := StrToDateTime(Format('%s/%s/%s %s', [A[3], A[2], A[1], A[4]]), 

FormatSettings.Create(2052));
  Result := Result + 8/24; //换算成北京时间end;

//测试procedure TForm1.Button1Click(Sender: TObject);
var
  strGMT: string;
  bjDateTime: TDateTime;
begin
  strGMT := GetNetTime();
  bjDateTime := GMT2BjDateTime(strGMT);

  ShowMessageFmt('%s'#13#10'%s', [strGMT, DateTimeToStr(bjDateTime)]);
end;

在真正实用中, 我把 GMT2BjDateTime 函数换成了:

function GMT2BjDateTime(const GMT: 

string): TDateTime;
var
  A: TArray<string>;
  Y,M,D,H,N,S: Word;
begin
  A := GMT.Split([',', ' ', ':'], ExcludeEmpty);

  with TStringList.Create dobeginCommaText := 

'Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12';
    A[2] := Values[A[2]];
    Free;
  end;

  Y := StrToIntDef(A[3], YearOf(Now));
  M := StrToIntDef(A[2], MonthOf(Now));
  D := StrToIntDef(A[1], DayOf(Now));
  H := StrToIntDef(A[4], HourOf(Now));
  N := StrToIntDef(A[5], MinuteOf(Now));
  S := StrToIntDef(A[6], SecondOf(Now));

  Result := EncodeDateTime(Y, M , D, H, N, S, 0);
  Result := Result + 8/24; //换算成北京时间end;

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 北京
, 时间
, result
, end
, create
格林时间
java格林威治时间转换、格林威治时间转换、js格林威治时间转换、格林威治时间在线转换、格林威治时间转换器,以便于您获取更多的相关知识。

时间: 2024-08-03 20:26:45

Delphi获取格林威治时间并转换到北京时间的相关文章

js 格林时间转换成北京时间

太平洋时区--指的是美国洛杉矶.旧金山.圣地亚哥.拉斯维加斯.西雅图等所在的时区.北京时间为 太平洋时间加16个小时,而格林尼治时间是太平洋时间加8个小时 如果太平洋时间是4点,则格林尼治时间是12点,北京时间是20点   PS:标题是格林时间,其实任何非北京时间都可以转换成北京时间 Javascript:  代码如下 复制代码 "Fri, 11 Apr 2014 03:01:08 GMT" // 格林时间 "Fri Apr 11 2014 11:10:08 GMT+0800

其他时间转化为北京时间

巴黎时间和北京时间怎么转换.   [导语]:巴黎在东1时区,北京在东8时区,北京时间比巴黎时间早7小时,北京时间减7小时就是巴黎时间. 在线时区换算http://time.123cha.com/?q=%E5%B7%B4%E9%BB%8E   先普及一下时区的概念. 1:全球共分为24个时区(中时区,东1~12区,西1~12区,其中东12区和西12区合并为一个时区). 2:每相隔一个时区,区时相差一个小时. 3:计算时间,使用东加西减法. 4:穿越日界线要进行日期变更,即自西向东经过日界线(日界线

如何将北京时间批量转为Unix时间?用Excel!

前面我们说过Unix时间戳转换怎样在Excel批量修改,有些人就想如果有特殊需求,那能不能批量将北京时间批量转成unix时间呢?能!用Excel就可以实现!跟ytkah一起试试吧. 将unix时间戳转换成北京时间的Excel公式是:=(x+8*3600)/86400+70*365+19,那将北京时间批量转成unix时间反过来计算就行了,只是在Excel中表示有点不同而已,公式是:=INT((C1-70*365-19)*86400-8*3600), 其中c1是可变的,时间在哪一列就跟着改变.怎么样

python获取标准北京时间的方法

 这篇文章主要介绍了python获取标准北京时间的方法,实例分析了Python通过www.beijing-time.org的官网获取标准北京时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了python获取标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段python代码主要通过www.beijing-time.org的官网上获取标准的北京时间,如果你的服务器挂在网上,你可以通过这段代码定时获取北京时间,然后更新自己系统的标准时间. ? 1 2 3 4 5

时间转换越界-delphi excel导入stringgrid后时间格式转换有越界

问题描述 delphi excel导入stringgrid后时间格式转换有越界 ![CSDN移动问答][1]excel导入stringgrid过程:procedure TForm1.btn1Click(Sender: TObject);var ExcelAppsheet:Variant; ExcelRowCountExcelcolCountijmnk:Integer; strstr1:string; wbk:OleVariant; EclApp WorkBook : Variant; begin

new-C#获取北京时间的问题

问题描述 C#获取北京时间的问题 /// 获取标准北京时间 /// /// </summary> /// /// <returns></returns> /// public static DateTime GetStandardTime() { /// //<?xml version="1.0" encoding="GB2312" ?> //- <ntsc> //- <time> // <

精确的北京时间 是如何获取的

问题描述 www.bjtime.cn和http://www.timedate.cn/worldclock/ti.asp精确的时间是怎么得到的?我知道官网:www.time.ac.cn/timeflash.asp?user=flash可以得到精确到秒的XML格式的时间,但是我不知道如何用到自己的网站上去,像bjtime和timedata一样,请大家赐教.谢谢! 解决方案 解决方案二:首页就只有我的问题回复数为"0"解决方案三:不能让他掉下去了解决方案四:可以用简单点的:<scrip

C#获取北京时间的问题,跪求解释,谢谢,急,急。。。

问题描述 ///获取标准北京时间//////</summary>//////<returns></returns>///publicstaticDateTimeGetStandardTime(){/////<?xmlversion="1.0"encoding="GB2312"?>//-<ntsc>//-<time>//<year>2013</year>//<mont

python获取标准北京时间的方法_python

本文实例讲述了python获取标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段python代码主要通过www.beijing-time.org的官网上获取标准的北京时间,如果你的服务器挂在网上,你可以通过这段代码定时获取北京时间,然后更新自己系统的标准时间. import time,httplib def getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org") conn.req