function GetInternetTime: string;
var
XmlHttp: OleVariant;
datetxt: string;
DateLst: TStringList;
mon: string;
timeGMT, GetNetTime: TDateTime;
s: string;
settings: TFormatSettings;
begin
XmlHttp := CreateOleObject('Microsoft.XMLHTTP');
XmlHttp.Open('GET', 'http://open.baidu.com/special/time/', False);
XmlHttp.Send;
datetxt := XmlHttp.GetResponseHeader('Date');
datetxt := Copy(datetxt, Pos(',', datetxt) + 1, 100);
datetxt := StringReplace(datetxt, 'GMT', '', []);
datetxt := Trim(datetxt);
if datetxt = '' then Exit;
DateLst := TStringList.Create;
while Pos(' ', datetxt) > 0 do
begin
DateLst.Add(Copy(datetxt, 1, Pos(' ', datetxt) - 1));
datetxt := Copy(datetxt, Pos(' ', datetxt) + 1, 100);
end;
DateLst.Add(datetxt);
if DateLst[1] = 'Jan' then
mon := '01'
else if DateLst[1] = 'Feb' then
mon := '02'
else if DateLst[1] = 'Mar' then
mon := '03'
else if DateLst[1] = 'Apr' then
mon := '04'
else if DateLst[1] = 'Mar' then
mon := '05'
else if DateLst[1] = 'Jun' then
mon := '06'
else if DateLst[1] = 'Jul' then
mon := '07'
else if DateLst[1] = 'Aug' then
mon := '08'
else if DateLst[1] = 'Sep' then
mon := '09'
else if DateLst[1] = 'Oct' then
mon := '10'
else if DateLst[1] = 'Nov' then
mon := '11'
else if DateLst[1] = 'Dec' then
mon := '12';
s := DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3];
//标准时间
// ShowMessage(s);
// '/' or '-'
settings.DateSeparator := '-';
settings.TimeSeparator := ':';
settings.ShortDateFormat := 'yyyy-mm-dd';
settings.ShortTimeFormat := 'hh:nn:ss';//dt:= strToDateTime('2010-3-19 08:09:10',settings);
timeGMT := StrToDateTime(DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3],settings);
//转换时区
GetNetTime := IncHour(TimeGMT, 8);
// ShowMessage(FormatDateTime('yyyy年mm月dd日 HH:NN:SS', GetNetTime));
FreeAndNil(DateLst);
Result:= FormatDateTime('yyyy年mm月dd日 HH:NN:SS', GetNetTime);
end;
delphi 获取北京时间
版权声明:本文为博主原创文章,未经博主允许不得转载。
方法一:
- uses
- ComObj, DateUtils;
- function GetInternetTime: string;
- var
- XmlHttp: OleVariant;
- datetxt: string;
- DateLst: TStringList;
- mon: string;
- timeGMT, GetNetTime: TDateTime;
- s: string;
- begin
- XmlHttp := CreateOleObject('Microsoft.XMLHTTP');
- XmlHttp.Open('GET', 'http://open.baidu.com/special/time/', False);
- XmlHttp.Send;
- datetxt := XmlHttp.GetResponseHeader('Date');
- datetxt := Copy(datetxt, Pos(',', datetxt) + 1, 100);
- datetxt := StringReplace(datetxt, 'GMT', '', []);
- datetxt := Trim(datetxt);
- if datetxt = '' then Exit;
- DateLst := TStringList.Create;
- while Pos(' ', datetxt) > 0 do
- begin
- DateLst.Add(Copy(datetxt, 1, Pos(' ', datetxt) - 1));
- datetxt := Copy(datetxt, Pos(' ', datetxt) + 1, 100);
- end;
- DateLst.Add(datetxt);
- if DateLst[1] = 'Jan' then
- mon := '01'
- else if DateLst[1] = 'Feb' then
- mon := '02'
- else if DateLst[1] = 'Mar' then
- mon := '03'
- else if DateLst[1] = 'Apr' then
- mon := '04'
- else if DateLst[1] = 'Mar' then
- mon := '05'
- else if DateLst[1] = 'Jun' then
- mon := '06'
- else if DateLst[1] = 'Jul' then
- mon := '07'
- else if DateLst[1] = 'Aug' then
- mon := '08'
- else if DateLst[1] = 'Sep' then
- mon := '09'
- else if DateLst[1] = 'Oct' then
- mon := '10'
- else if DateLst[1] = 'Nov' then
- mon := '11'
- else if DateLst[1] = 'Dec' then
- mon := '12';
- s := DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3];
- //标准时间
- // ShowMessage(s);
- // '/' or '-'
- timeGMT := StrToDateTime(DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3]);
- //转换时区
- GetNetTime := IncHour(TimeGMT, 8);
- // ShowMessage(FormatDateTime('yyyy年mm月dd日 HH:NN:SS', GetNetTime));
- FreeAndNil(DateLst);
- Result:= FormatDateTime('yyyy年mm月dd日 HH:NN:SS', GetNetTime);
- end;
方法二:
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- WebBrowser.Navigate('http://www.timedate.cn/worldclock/ti.asp');
- tmr1.Enabled := True;
- end;
- procedure TForm1.WebBrowserStatusTextChange(Sender: TObject;
- const Text: WideString);
- var
- strText: string;
- begin
- strText := Text;
- if strText = '完成' Then
- begin
- Caption := WebBrowser.OleObject.Document.Body.Innertext;
- tmr1.Enabled := True
- end;
- end;
- procedure TForm1.tmr1Timer(Sender: TObject);
- begin
- tmr1.Enabled := False;
- WebBrowser.Refresh
- end;
delphi strtodatetime 这个函数在win7下出错
- 浏览:483
- |
- 更新:2014-01-11 23:58
strtodatetime 这个函数在win7下出错例如 strtodatetime('2010-11-25') 在win7下出错 , 但在xp系统下正常解决方法日期格式不一样,你需要统一日期格式,可以再控制面板中修改,或者用代码实现Delphi(Pascal) code
var
settings: TFormatSettings;
dt: TDateTime;
begin
GetLocaleFormatSettings(GetUserDefaultLCID, settings);
settings.DateSeparator := '-';
settings.TimeSeparator := ':';
settings.ShortDateFormat := 'yyyy-mm-dd';
settings.ShortTimeFormat := 'hh:nn:ss';dt:= strToDateTime('2010-3-19 08:09:10',settings);
end;