如题

解决方案 »

  1.   

    用DateTimeToSystemTime函数函数说明 将TDateTime对象转换为操作系统时间,函数原型如下:
    DateTimeToSystemTime(System::TDateTime DateTime, _SYSTEMTIME &SystemTime);
      

  2.   

    Delphi 也用实型数表示日期和时间数据。但为了更准确起见,Delphi 特别定义了TDateTime 数据类型,这是一个浮点类型,因为这个类型必须足够宽,使变量能容纳年、月、日、时、分和秒、甚至毫秒。日期值按天计数,从1899-12-30开始,放在TDateTime 类型的整数部分;时间值则位于十进制数的小数部分。TDateTime 不是编译器可直接识别的预定义类型,它在System单元定义:type
      TDateTime = type Double;使用TDateTime 类型很简单,因为Delphi 为该类型定义了一系列操作函数,表3.3列出了这些函数。表3.3: TDateTime类型系统例程 例程 作用  
    Now 返回当前日期及时间  
    Date 返回当前日期  
    Time 返回当前时间  
    DateTimeToStr 按缺省格式将日期和时间值转换为字符串;特定格式转换可用 FormatDateTime函数  
    DateTimeToString 按缺省格式将日期和时间值拷贝到字符串缓冲区  
    DateToStr 将TDateTime值的日期部分转为字符串  
    TimeToStr 将TDateTime值的时间部分转为字符串  
    FormatDateTime 按特定格式将日期和时间值转换为字符串  
    StrToDateTime 将带有日期和时间信息的字符串转换为TdateTime类型值,如串有误将引发一个异常  
    StrToDate 将带有日期信息的字符串转换为TDateTime类型格式  
    StrToTime 将带有时间信息的字符串转换为TDateTime类型格式  
    DayOfWeek 根据传递的日期参数计算该日期是一星期中的第几天  
    DecodeDate 根据日期值返回年、月、日值  
    DecodeTime 根据时间值返回时、分、秒、毫秒值  
    EncodeDate 组合年、月、日值为TDateTime类型值  
    EncodeTime 组合时、分、秒、毫秒值为TDateTime类型值  
    为了显示怎样使用日期时间类型及其相关例程,我建了一个简单的例子TimeNow。该例子在主窗体中设置了一个按钮和一个列表框(ListBox)。开始执行时,程序自动计算并显示当前的时间及日期,以后每次单击按钮 ,显示从程序开始至当前的时间。下面列出了窗体的OnCreate 事件代码:procedure TFormTimeNow.FormCreate(Sender: TObject);
    begin
      StartTime := Now;
      ListBox1.Items.Add (TimeToStr (StartTime));
      ListBox1.Items.Add (DateToStr (StartTime));
      ListBox1.Items.Add ('Press button for elapsed time');
    end;第一句中调用了Now 函数,这个函数返回当前的日期和时间,它的值保存在StartTime 变量中,StartTime 变量是全程变量,其声明如下:var
      FormTimeNow: TFormTimeNow;
      StartTime: TDateTime;我只添加了第二个声明,第一个是由Delphi自动添加的。默认情况下的代码如下:var
      Form1: TForm1;窗体名改变后,这个声明被自动更新。使用全程变量实际上不是最好的办法,更好的方法是使用窗体类的私有域,这涉及到面向对象的编程技术。接下来的三个语句向位于窗体左面的列表框添加三个条目,结果见图3.3。列表框中的第一行显示了TDateTime 值的时间部分字符串、第二行显示的是同一值的日期部分,最后一行显示了一个简单的提示。 当用户单击Elapsed 按钮时,上图第三行字符串被程序的计算结果代替:procedure TFormTimeNow.ButtonElapsedClick(Sender: TObject);
    var
      StopTime: TDateTime;
    begin
      StopTime := Now;
      ListBox1.Items [2] :=  FormatDateTime ('hh:nn:ss',
        StopTime - StartTime);
    end;这串代码再次计算当前的时间,并显示当前与程序开始之时的时间差,其中用到了其它事件中的计算值,为此不得不把该值存入全程变量。实际上,最好是采用基于类的变量。注意:上面代码中所用ListBox的索引号为2,,而它代表的是第三行的显示输出,其原因是listbox的数据项是从零开始计数的:第一项计为0,第二项为1,第三项为2,依次类推,后面涉及数组时再详细讨论这方面内容。除了调用TimeToStr和 DateToStr 外,以上例子中还用到了功能强大的FormatDateTime 函数(关于格式化参数详见Delphi 帮助文件)。需要注意的是:当时间和日期转换成字符串时,其转换格式取决于Windows 的系统设置。Delphi 从系统中读这些值,并把它们拷贝到SysUtils 单元中声明的几个全程常量中,例如:DateSeparator: Char;
    ShortDateFormat: string;
    LongDateFormat: string;
    TimeSeparator: Char;
    TimeAMString: string;
    TimePMString: string;
    ShortTimeFormat: string;
    LongTimeFormat: string;
    ShortMonthNames: array [1..12] of string;
    LongMonthNames: array [1..12] of string;
    ShortDayNames: array [1..7] of string;
    LongDayNames: array [1..7] of string;大部分全程常量与currency 和浮点数格式化有关,在 Delphi 帮助的 Currency and date/time formatting variables 主题下,你可找到完整的清单。注意:Delphi 中有一个DateTimePicker 控件,它提供了选择日期的常用途径,即从一个日历中选择日期。
      

  3.   

    控制面板——》区域选项——》时间——》时间格式改成 
    HH:mm: ss注意H一定要为大写 才是24小时制