本帖最后由 kayoo 于 2012-05-19 21:53:02 编辑

解决方案 »

  1.   


    var
      ST : TSystemTime;
      n : integer;
    begin
      Windows.GetLocalTime(ST);
      n := ST.wYear * 10000 + ST.wMonth * 100 + ST.wDay;
    end;
      

  2.   


    var
      Y , M , D : WORD;
      n : integer;
    begin
      DecodeDate(StrToDateTimeDef(Edit1.Text , 0) , Y , M , D);
      n := Y * 10000 + M * 100 + D;
    end;
      

  3.   

    var d:integer;d:=StrToInt(FormatDateTime('yyyymmdd',Date)); //Date就是系统当前日期
      

  4.   

    var
    temp:string;begin
    temp:=copy(edit1.text,1,4)+copy(edit1.text,6,7)+copy(edit1.text,9,10);
    end;
    temp里就只有年月日没-号了.
      

  5.   

    Edit1.text里的字符串是2012-05-19
    //截取并合并字符串
    //引用单元StrUtils
    //安扭BUTTON1中的代码如下:
    var
       EEdit1:string; //原edit1.text内的字符串
       dsEdit:string;//合并字符串
    begin
       //Edit1.text:='2012-05-19';
       EEdit1:=trim(edit1.text);
                      //年              月             日
       dsEdit:=LeftStr(EEdit1,4)+Copy(EEdit1,6,2) +RightStr(EEdit1,2);
       showmessage('日期转换2012-05-19为:'+dsEdit);
    end;
      

  6.   

    IntToStr(ReplaceStr(Edit1.text, '-', ''))
      

  7.   

    不好意思,写错了,应该是StrToInt(ReplaceStr(Trim(Edit1.Text), '-', ''))
      

  8.   

     strtoint(stringreplace(edit1.text, '-', '', [rfreplaceall]))把-替换成空白再转成整数
      

  9.   

    tmpstr:=StringReplace('2012-12-04','-','',[rfReplaceAll]);
    //tmpstr='20121204'
      

  10.   

    3楼是正解,格式可以自己控制
    d:=StrToInt(FormatDateTime('yyyy-mm-dd',Date));
      

  11.   

    uses
      ...,sysutils;
    ...
    var
      s: string;
    begin
      s := stringReplace(Edit1.text,'-','',[rfReplaceAll]);
      result := StrToInt(s);
    end;
      

  12.   

    楼主 其实这个问题 楼上大多数的解法都是正确的 关于日期问题 并不在于 是否是本机的 或 服务器的时间 而关键在于一下几点:
    1:日期是浮点数,整数部分表示的是从起始日期距离当前的日期的天数,小数部分是time/24。所以,当你使用浮点数值在不同系统之间传递时间的时候,需要知道不同系统之间日期的起始值是多少,例如,delphi中日期起始值0表示的是1899年12月30日 00:00,而SQL Server Oracle中的起始日期0是1900年1月1日 00:00.所以你需要查阅相关手册。注意,在delphi中,你如果通过midas与数据库传递日期,Midas会自动补差。
    2:方便起见,你可以使用字符串在不同系统间传递日期,但是你在传递日期字符串时,需要明确日期格式,最好不要期望使用默认格式做转换。因为,系统的默认格式是可选的,如果是Windows系统,就在控制面板-区域 中设置,如果被人设置为特殊格式,就会引起你的程序异常,即便是通用格式,也有可能会由于UK与US的日期格式差异,造成潜在错误。所以,如果你传入的是日期字符串,期望转成整型,我建议按照如下的写法
    var
      FFMT: TFormatSettings;
    begin
      with FFMT do
      begin
        ShortDateFormat:= 'yyyy-MM-dd';
        DateSeparator:= '-';
      end;
      Edit2.Text:= FormatDateTime('yyyyMMdd', StrToDate(Edit1.Text, FFMT));
    end;当然,如果你可以确保你的输入日期可以一定是yyyy-MM-dd 那也不需要写的很麻烦,就使用楼上的字符串替换的方法即可。
      

  13.   

    我之所以选择他为最佳,是因为完整且简洁,至少加了uses,功能也符合我的要求抱歉