我有一个程序需要将日期格式的资料存到SQL,但当我的日期格式为 2005-10-27或2005.10.27时程序汇报告错误------但2005/10/27则可以正常存入.问:我如何在Delphi下将系统的2005-10-27或2005.10.27格式设置成为2005/10/27格式.  谢谢

解决方案 »

  1.   

    用formatdatetime('这里日期时间的格式',这里日期时间) 日期格式化函数来搞定以下是帮助:
    The following example uses FormatDateTime to set the string variable S to a sentence indicating a meeting time in 3 hours. The sentence has the form 'The meeting is on Wednesday, February 15, 1995 at 2:30 PM'. S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125);
      

  2.   

    up
    好久没做这事了,帮你顶
    楼主是让用户自己输入时间吧,
    为什么不用DateTimePicker让时间设置成可选的
    也免了检查用户输入时间错误
      

  3.   

    不是,我是需要将字符串 “0012005100711304000003722018"中的20051007113040中的年月日时间转入到SQL中,我的转换语句为:                                       FieldByName('icdatetime').AsString:=Copy(TemDate,1,4)+'/'+Copy(TemDate,5,2)+'/'+Copy(TemDate,7,2)+' '+Copy(TemDate,9,2)+':'+Copy(TemDate,11,2)+':'+Copy(TemDate,13,2);
    程式执行时只有当我将系统时间格式设置为2005/10/27格式时方可正确执行,其他两种方式则报错,我如何将系统时间格式由2005-10-27或2005.10.27格式设置成为2005/10/27格式.  谢谢
      

  4.   

    希望通过API解决---如果可以的话!我找到资料输入下列代码依然无效
    //得到當前系統默認時區的日期 
     procedure GetDateFormat; 
     var 
       sFormatDate:String; 
     begin 
       SetLength(sFormatDate,17);//中文時區 
       GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SLONGDATE ,PChar(sFormatDate),17); 
     end; 
     
     //設置系統日期格式為yyyy-mm-dd 
     procedure SetDateFormat; 
     begin 
       SetLocaleInfoa(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, PChar('yyyy-mm-dd')); 
     end;
      

  5.   

    如果icdatetime是日期型号,不要强制转换为String,用VarToDateTime转换
    FieldByName('icdatetime').Value:=VarToDateTime(Copy(TemDate,1,4)+'/'+Copy(TemDate,5,2)+'/'+Copy(TemDate,7,2)+' '+Copy(TemDate,9,2)+':'+Copy(TemDate,11,2)+':'+Copy(TemDate,13,2));
      

  6.   

    是你的Copy函数取日期时,取错字符了
      

  7.   

    VarToDateTime(Copy(TemDate,4,4)+'/'+Copy(TemDate,8,2)+'/'+Copy(TemDate,10,2)+' '+Copy(TemDate,12,2)+':'+Copy(TemDate,14,2)+':'+Copy(TemDate,16,2));
      

  8.   

    TemDate=2005100711304000003722018 !
      

  9.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      TemDate:string;
      t:TDatetime;
    begin
      TemDate:='2005100711304000003722018';
      t:=VarToDateTime(Copy(TemDate,1,4)+'/'+Copy(TemDate,5,2)+'/'+Copy(TemDate,7,2)+' '+Copy(TemDate,9,2)+':'+Copy(TemDate,11,2)+':'+Copy(TemDate,13,2));
      ShowMessage(DateTimeToStr(t));
    end;
    你测试一下吧