2012-12-19 45 views
14

Tôi hy vọng các mã sau đây để làm việc:Tại sao TFormatCài đặt không hoạt động như mong đợi?

program Project3; 

{$APPTYPE CONSOLE} 

{$R *.res} 

uses 
    System.SysUtils; 

var 
    FS: TFormatSettings; 

const 
    DF = 'yyyymmdd'; 

begin 
    try 
    WriteLn(FormatDateTime(DF, Now)); 

    FS := TFormatSettings.Create; 
    FS.ShortDateFormat := DF; 
    WriteLn(StrToDate('20121219', FS)); 

    ReadLn; 
    except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
    end; 
end. 

Tại sao nó ném một ngoại lệ, nói rằng '20.121.219' không phải là một ngày hợp lệ? Đó không phải là chính xác những gì vượt qua TFormatSettings là nghĩa vụ phải làm gì?

+4

Các RTL dường như không thích điều đó không có dấu phân cách ngày được thiết lập trong các thiết lập định dạng. –

Trả lời

Các vấn đề liên quan