Cita:
Para un equipo en el que está configurado el formato "dd/mm/yyyy" funciona de maravilla, pero cuando ejecuto la aplicación en un equipo con formato "mm/dd/yyyy", me dice que la fecha "17/01/2012 07:46:42" no es una fecha/hora válida, claro, no existe el mes "17".
|
Hola Leviatan.
Podrías evaluar previamente la configuración actual para luego hacer la conversión correspondiente:
Código Delphi
[-]
function FormatearFechaHora(Cadena: string): string;
var
Anio, Mes, Dia, Hora, Min, Seg: string;
FechaHora: TDateTime;
begin
Anio := Copy(Cadena, 1, 4);
Mes := Copy(Cadena, 5, 2);
Dia := Copy(Cadena, 7, 2);
Hora := Copy(Cadena, 9, 2);
Min := Copy(Cadena, 11, 2);
Seg := Copy(Cadena, 13, 2);
if UpperCase(Copy(ShortDateFormat,1,2)) = 'DD' then
FechaHora := StrToDateTime(Dia + '/' + Mes + '/' + Anio + ' ' + Hora + ':' + Min + ':' + Seg)
else
FechaHora := StrToDateTime(Mes + '/' + Dia + '/' + Anio + ' ' + Hora + ':' + Min + ':' + Seg);
Result := AnsiReplaceStr(FormatDateTime('yyyy-mm-dd hh:mm:ss', FechaHora), ' ', 'T')
end;
Saludos.