Delphi - Convertir tiempo am/pm a 24hrs

 
Vista:

Convertir tiempo am/pm a 24hrs

Publicado por rdzulc (7 intervenciones) el 17/10/2007 17:25:26
Hola.

Estoy utilizando la función Time para obtener la hora del sistema, este dato lo voy a insertar en un campo smalldatetime de una tabla en SQL Server, pero al momento de mandarlo me marca error.

El dato que devuelve time viene en formato hh:mm:ss a.m./p.m., si intento mandar a mi sp la fecha como string con ese mismo formato también marca error pero si la mando sin el a.m./p.m. en formato 24hrs (14:20:00) si lo acepta.

Por eso quiero convertir de am/pm a 24hrs un dato del tipo time.

Si me pudieran ayudar se los agradecería mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir tiempo am/pm a 24hrs

Publicado por anonimo (2 intervenciones) el 17/10/2007 19:59:25
usa la funcion now() eso te entrega la fecha y hora del sistema
lo puedes cargar en una variable del tipo Tdatetime, si necesitas la hora solamente la puedes descomcomner con las funciones DECODEDATE

en variables de tipo word (AA,MM,DD, HH, MI, SS, MS)

detodas maneras en la ayuda de delphi hay ejemplo de como usarlas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir tiempo am/pm a 24hrs

Publicado por Carlos Alejandro (1 intervención) el 14/08/2009 20:59:38
PUEDES UTILIZAR UN EDIT Y UN DATE TIMEPICKER Y EN LA PROPIEDAD KIND LE PONEMOS DKTTIME Y OTRO DATETIMAPICKER LO DEJAMOS EN DATE
Y HACER LOS SIGUIENTE

EDI1.TEXT:=TIMETOSTR(TIMEPICKER1.TIME);
EDIT1.TEXT:=COPY(EDIT1.TEXT,1,LENGTH(EDIT1.TEXT)-3)

ESTO NOS DEVOLVERA LA HORA ASI:

HORA EN EL DATETIMEPICKER: 12:40 AM
HORA EN EL EDIT: 12:40

AHORA YA TENEMOS LA HORA EN 24HRS PERO NOS FALTA SABER SI ES AM O PM PARA ESO HACEMOS LO SIGUIENTE:

EN UNA VARIABLE DE TIPO STRING U OTRO EDIT LE HACEMOS OTRO COPY AL DATETIMEPICKER DE LA SIGUIENTE MANERA

VARIABLE:=TIMETOSTR(DATETIMEPICKER1.TIME);
VARIABLE:=COPY(VARIABLE,LENGTH(VARIABLE)-3,LENGTH(VARIABLE));

OBTENDREMOS LO SIGUIENTE:

VARIABLE SERA IWAL A "AM" O "PM" SEGUN EL CASO

AHORA PREGUNTAMOS EN UNA CONDICION LO SIGUIENTE

IF VARIABLE='AM' THEN BEGIN
IF LENGTH(EDIT1.TEXT)<5 THEN EDIT1.TEXT:='0'+EDIT1.TEXT;
END
ELSE BEGIN
IF COPY(EDIT1.TEXT,1,1)='01' THEN BEGIN
EDIT1.TEXT:='13'+COPY(EDIT1.TEXT,3,LENGTH(EDIT1.TEXT))
END
ELSE BEGIN
IF COPY(EDIT1.TEXT,1,1)='02' THEN BEGIN
EDIT1.TEXT:='14'+COPY(EDIT1.TEXT,3,LENGTH(EDIT1.TEXT))
END
ELSE BEGIN
IF COPY(EDIT1.TEXT,1,1)='02' THEN BEGIN
EDIT1.TEXT:='15'+COPY(EDIT1.TEXT,3,LENGTH(EDIT1.TEXT))
.
.
.
.
.
.
.
//ASII SUCESIVAMENTE HASTA QUE LLEGUES A LAS 00 QUE SERIAN LAS 12:00PM
END;
END;
END;

END;

TERMINANDO DE HACER TODO ESTO

SOLO HACES LO SIGUIENTE PARA ENVIARLO AL SQL SERVER

'{ts'+QoutedStr(FormatDateTime('yyyy-mm-dd',datetimepicker2.date)+' '+edit1.text+':00')+'}'

lo cual nos dejara la fecha en el SQL asi

{TS '2009-08-14 13:57:00}

y listo

es un poco largo el codigo pero espero te sirva de ayuda
suerte...yo ya lo probe y si funciona...espero haber sido claro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar