您的位置:首页 > 其它

获取当前系统时间(摘)

2008-08-27 09:31 513 查看
from http://tech.sina.com.cn/soft/2000-09-27/775.html
第一种方法是利用Time()函数获得当前系统时间,返回结果是TDateTime结构类型的变量。

可以使用:TimeToStr将时间改为字符型。该函数不能用于返回“日期”。

  单独用于返回日期的系统函数是Date。

  那么有什么是既可返回正确的“时分秒”又可返回正确的“年月日”呢? 可以用Now函数,例如:

var

sTime:TDateTime;

sday:TDatetime;

mytime:TDateTime;

begin

sTime:=Time();

sday:=Date ;

mytime:=Now;

// Caption:=DateToStr(sday)+' '+TimeToStr(sTime);

Caption:=DateToStr(mytime)+' '+TimeToStr(mytime);

end;

二是使用函数:DecodeDate(Date,wYear,wMonth,wDay);//wYear等为word类型

三、使用API函数GetSystemTime

  用Now返回的日期格式中年只有2位,即2000年显示为00, 这似乎不太令人满意. 此外Now和Time都只能获得精确到秒的时间,为了得到更精确的毫秒级时间,可以使用API函数GetSystemTime,它对应的TSystemTime类型的定义为:

  TSystemTime = record

  wYear: Word;

  wMonth: Word;

  wDayOfWeek: Word;

  wDay: Word;

  wHour: Word;

  wMinute: Word;

  wSecond: Word;

  wMilliseconds: Word;

  end;

  显然,在程序逻辑中还能够方便地使用其结构成?时---各类时间值,因此使用函数GetSystemTime具有很大优越性。但该书中该函数的用法是错误的,通过查阅Windows SDK帮助可知,该函数原型为:

  VOID GetSystemTime(LPSYSTEMTIME lpst),参数指针lpst获取系统时间,因此可如以下程序段实现:

  procedure TForm1.Button3Click(Sender: TObject);

  var

  SysTime: TsystemTime;

  begin

  GetSystemTime(SysTime);

  Caption:=IntToStr(SysTime.wYear)+' '+IntToStr(SysTime.wMonth);

  //if SysTime.wYear>2000 then

  // ......在程序逻辑中利用获取的各类时间值

  end;

  综合以上讨论,获取当前系统时间利用函数GetSystemTime比较方便而且灵活。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: