PDA

Ver la Versión Completa : Conversion de String a fecha


pmtzg
09-11-2007, 22:52:33
mi pregunta es la siguiente

si tengo en delphi


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
fecha : TdateTime;
str : string;
str:= '01/01/2007';

fecha :=StrtoDate(str);
edit1.text:=FormatDateTime('dd/MMM/yy',fecha);





me convierte el string a formato fecha y lo formateo
y queda de la siguiente manera 01/Ene/07

pero si lo quiero regresar de formato 01/Ene/07 a 01/01/07
Como le Hago , hay alguna opcion o funcion ... gracias

marcoszorrilla
09-11-2007, 22:55:15
Edit1.Text:=FormatDateTime('dd/mmm/yyyy',Fecha);
Edit1.Text:=FormatDateTime('dd/mm/yyyy',Fecha);


Un Saludo.

pmtzg
09-11-2007, 22:57:39
me marca error 01/Ene/07 is not valid date

ya lo hice

gracias

marcoszorrilla
09-11-2007, 23:00:22
procedure TForm1.Button1Click(Sender: TObject);
var
Fecha:Tdate;
begin
Fecha:=Date;
edit1.text:=FormatDateTime('dd/MMM/yy',fecha);
edit2.text:=FormatDateTime('dd/MM/yy',fecha);
end;


Un Salud.

pmtzg
09-11-2007, 23:05:36
me sigue marcando error +

me dice raised exeption class EconvertError whit message "01/Ene/07"
is not valid date

marcoszorrilla
09-11-2007, 23:07:23
Date cuenta que trabajo con la variable fecha, no con el Edit, puesto que el texto que contiene no puede transformarse a fecha.

Un Saludo.

pmtzg
10-11-2007, 00:14:01
nada mas que

fecha :Tdate;

y por decir converti una variable 0 si quieres edit1.text de

01/01/07 a 01/Ene/07

bien ahora deseo hacerlo a la inversa

de 01/Ene/07 A 01/01/07

el ejemplo q me marcas es correcto
solo que fecha tabaja con el formato 01/01/07 y no con 01/Ene/07

si me doy a entender ,
muchas gracias por tu apoyo Amigo ...

egostar
10-11-2007, 00:21:17
No se si haya una función que te haga lo que quieres, aqui te pongo un código que hace lo que necesitas, puede ser que haya algo mejor, pero esto te servirá.


procedure TForm1.Button1Click(Sender: TObject);
const
Meses : Array [1..12] of String =
('ENE','FEB','MAR','ABR','MAY','JUN',
'JUL','AGO','SEP','OCT','NOV','DIC');
var
Fecha,Mes: String;
MesI,I: Integer;
begin
Fecha := '01/May/07';
Mes := Copy(Fecha,4,3);
For I := 1 to 12 do begin
if UpperCase(Mes) = Meses[I] then
MesI := I;
end;
ShowMessage(Copy(Fecha,1,3)+Format('%.*d',[2,MesI])+Copy(Fecha,7,3));
end;


Salud OS

pmtzg
10-11-2007, 00:40:16
si me funciono

una pregunta Más
que pasa si el sistema Operativo de la Compu esta en Ingles
ahi fallaria el arreglo de Meses ???

Pd. Estoy Apenas aprendiendo Delphi y es una maravilla

:):):):):):):):):)

egostar
10-11-2007, 00:46:35
si me funciono

una pregunta Más
que pasa si el sistema Operativo de la Compu esta en Ingles
ahi fallaria el arreglo de Meses ???

Pd. Estoy Apenas aprendiendo Delphi y es una maravilla



Pues le enseñas a hablar en ingles al arreglo de meses :D:D:D

Bueno, que te parece así:


Meses : Array [1..16] of String =
('ENE','FEB','MAR','ABR','MAY','JUN',
'JUL','AGO','SEP','OCT','NOV','DIC',
'JAN','APR','AUG','DEC');


Salud OS