码迷,mamicode.com
首页 > Windows程序 > 详细

怎么使用Delphi获取当前的时间,精确到毫秒

时间:2015-08-17 21:21:49      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

直接先参考下面的代码段,很简单很直白很方便        

var
  currentTime:TSystemTime;
  year, month, day, hour, minute, second, millisecond: string;
  datetime: string;
begin
  GetSystemTime(currentTime);
  year:= IntToStr(currentTime.wYear);
  month:= IntToStr(currentTime.wMonth);
  day:= IntToStr(currentTime.wDay);
  hour:= IntToStr(currentTime.wHour + 8);
  minute:= IntToStr(currentTime.wMinute);
  second:= IntToStr(currentTime.wSecond);
  millisecond:= IntToStr(currentTime.wMilliseconds);

  datetime:= year + ‘-‘ + month + ‘-‘ + day + ‘ ‘ + hour + ‘:‘ + minute + ‘:‘ + second + ‘:‘ + millisecond;
  ShowMessage(datetime);
end;

 

需要注意的是                        

时间的小时数问题

  和C家族的语言(比如C、C++、PHP)一样,这种方式获取的时间,年、月、日、分钟、秒、毫秒都是,但是获取的小时数是晚了8小时的,比如当前时间是19:30,但是使用这种方法得到的小时数是11点,所以在进行开发的时候,这个问题需要单独处理一下。

  这也是为什么上面的代码中小时数会加8的原因:hour:= IntToStr(currentTime.wHour + 8);

 

需要引入的单元

  要使用TSystemTime类型以及GetSystemTime过程需要引用Windows单元。

  其中TSystemTime的定义是

PSystemTime = ^TSystemTime;
_SYSTEMTIME = record
  wYear: Word;
  wMonth: Word;
  wDayOfWeek: Word;
  wDay: Word;
  wHour: Word;
  wMinute: Word;
  wSecond: Word;
  wMilliseconds: Word;
end;
{$EXTERNALSYM _SYSTEMTIME}
TSystemTime = _SYSTEMTIME;
SYSTEMTIME = _SYSTEMTIME;
{$EXTERNALSYM SYSTEMTIME}

  其中GetSystemTime的声明是这样的

procedure GetSystemTime; external kernel32 name ‘GetSystemTime‘;

  它的函数原型是

procedure GetSystemTime(var lpSystemTime: TSystemTime); stdcall;

  一看就是使用静态加载的方式加载了DLL,所以在Windows里面也只是引入GetSystemTime过程,并没有实现,具体的实现是在 kernel32.dll这个DLL里面实现的。具体这个DLL是使用C语言还是使用Delphi语言实现的就不得而知了,等我以后研究到再说。(估计是用C实现的,要不为什么获取的时间的小时数会差8个小时,和C语言一样,不过这只是目前的猜测)

  什么是kernel32.dll?

    kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。

怎么使用Delphi获取当前的时间,精确到毫秒

标签:

原文地址:http://www.cnblogs.com/xumenger/p/4737631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!