名前 題名 ▼ takaさん > 日付文字列 → TDateTimeへの変換を試してみました。 > > 結果 > > # Delphi > # VarToDateTime > 1928/02/01 00:01:00 : 1928/2/1 0:1:0 > 1928/02/01 00:02:00 : 昭和3年2月1日0時2分 > 1928/02/01 00:03:00 : 昭3/2/1 0:3 > 1928/02/01 00:04:00 : S3/2/1 0:4 > # StrToDateTime > 1928/02/01 00:01:00 : 1928/2/1 0:1:0 > 1928/02/01 00:02:00 : 昭和3年2月1日0時2分 > 1928/02/01 00:03:00 : 昭3/2/1 0:3 > Error : 2003/02/01 00:04:00 : S3/2/1 0:4 > > # FPC > # VarToDateTime > 1928/02/01 00:01:00 : 1928/2/1 0:1:0 > Error : 昭和3年2月1日0時2分 > Error : 昭3/2/1 0:3 > Error : S3/2/1 0:4 > # StrToDateTime > Error : 1928/2/1 0:1:0 > Error : 昭和3年2月1日0時2分 > Error : 昭3/2/1 0:3 > Error : S3/2/1 0:4 > > --------------------- > > コード > > procedure TForm1.Button1Click(Sender: TObject); > const data : array[0..3] of string = ( > '1928/2/1 0:1:0', > '昭和3年2月1日0時2分', > '昭3/2/1 0:3', > 'S3/2/1 0:4'); > var > i: integer; > JPNEraFormat: TFormatSettings; > strDate, strDate2 : String; > timestamp: TDateTime; > begin > {$ifndef FPC} > JPNEraFormat := TFormatSettings.Create('ja-JP'); > {$ENDIF} > JPNEraFormat.ShortDateFormat := 'ggee/m/d'; > > Memo1.Lines.Text := '# '+ {$ifdef FPC}'FPC'{$ELSE}'Delphi'{$ENDIF}; > > Memo1.Lines.Add('# VarToDateTime'); > for i:=low(data) to high(data) do > try > strDate2 := FormatDateTime('yyyy/mm/dd hh:mm:ss', > VarToDateTime(data[i])); > strDate2 := strDate2 + ' : ' + data[i]; > if ('1928' <> Copy(strDate2, 1, 4)) then > Memo1.Lines.Add('Error : '+ strDate2) > else > Memo1.Lines.Add(strDate2); > except > Memo1.Lines.Add('Error : ' + data[i]); > end; > > Memo1.Lines.Add('# StrToDateTime'); > for i:=low(data) to high(data) do > try > strDate := data[i]; > strDate := StringReplace(strDate, '年', '/', []); > strDate := StringReplace(strDate, '月', '/', []); > strDate := StringReplace(strDate, '日', ' ', []); > strDate := StringReplace(strDate, '時', ':', []); > strDate := StringReplace(strDate, '分', '', []); > strDate2 := FormatDateTime('yyyy/mm/dd hh:mm:ss', > StrToDateTime(strDate,JPNEraFormat)); > strDate2 := strDate2 + ' : ' + data[i]; > if ('1928' <> Copy(strDate2, 1, 4)) then > Memo1.Lines.Add('Error : '+ strDate2) > else > Memo1.Lines.Add(strDate2); > except > Memo1.Lines.Add('Error : ' + data[i]); > end; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link