2012-12-19 5 views
14

は、私は次のコードが動作することを期待:TFormatSettingsが期待どおりに動作しないのはなぜですか?

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. 

は、なぜそれが「20121219」は有効な日付ではありませんと言って、例外をスローしていますか?それはTFormatSettingsを通過するものが行うべきことではありませんか?

+4

RTLには、日付の区切りは、書式設定で設定されていないことを好きではないように見えます。 –

答えて