Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2008
Avatar de lina maria
lina maria lina maria is offline
Miembro
 
Registrado: abr 2008
Posts: 53
Poder: 17
lina maria Va por buen camino
Unhappy Cambiar formato 12 Hr's a 24 Hr's

Hola amigos como estan quisiera pedir su colaboracion para ke me ayuden a solucionar un ploblema ke se me genera al hacer una aplicacion en delhi, tengo un maskedit en donde el usuario digita una hora cualkiera y selecciona si esta es am o pm, si es am la almaceno en la bd tal como esta pero si es pm tomo esta hora y le sumo 1/2 (12/24) para ke me la ponga en formato pm, el problema surge cuando kiero guardar esta hora en un pc ke tiene como formato 12 Hr's me la guarda agregandole pm a la hora ejemplo si kiero almacenar 3 de la tarde me la guarda como 3:00 pm y no como 15:00 ke es la forma como la tendria ke almacenar en la bd, les agradesco si alguno sabe alguna funcion o alguna forma de convertir esa hora a formato 24 Hr's, muchas gracias y ojala me puedan ayudar
Responder Con Cita
  #2  
Antiguo 21-05-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Hola, a ver si esto te lo soluciona:

Código Delphi [-]
var
  Fecha: TDateTime;
  Resultado: String;

begin
  // hora a convertir
  Fecha:=StrToTime('03:00:00 pm');
  // convertir hora a string
  DateTimeToString(Resultado, 'hh:mm:ss', Fecha);

Lo que hace este ejemplo, es obligarle a formatear la hora en formato de 24h. Si no quieres mostrar los segundos, simplemente quitale ":ss" y ya esta...

Te enlazo este link donde hay mas información.

Saludos.
Responder Con Cita
  #3  
Antiguo 21-05-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Yo creo que debias utilizar la variable del sistema ShortTimeFormat para que en toda la aplicacion cuando trabajes con fechas uses es que tu definas.
Ponla en el evento onCreate de tu forma principal.

Código Delphi [-]
ShortTimeFormat := 'h:nn:ss';
LongTimeFormat := 'h:nn:ss';

(ahora mismo no estoy seguro, creo qye es el formato de 24h, lo puedes ver en la ayuda), cualquier cosa avisas si tienes dudas.
Saludos y espero haberte resuelto el problema.

Última edición por paladincubano fecha: 21-05-2008 a las 16:46:30.
Responder Con Cita
  #4  
Antiguo 21-05-2008
Avatar de lina maria
lina maria lina maria is offline
Miembro
 
Registrado: abr 2008
Posts: 53
Poder: 17
lina maria Va por buen camino
Wink Muchas Gracias

oye muchisisisisimas gracias me funciono a la perfeccion te kedo muy agradecida
Responder Con Cita
  #5  
Antiguo 21-05-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Cual fue el que te sirvio de las dos respuestas?
Yo he editado la mia unas cuantas veces porque lo hice a memoria y no recordaba mucho, pero ya la final es la que esta echa.
Mira.
El primer ejemplo que te pusieron esta muy bien, pero es para solo en un caso especifico. El que te pongo yo, es para cualquier tipo de hora encontrada en tu aplicacion, desde los mismos TDatetime hasta las mascaras de fecha.
Dependiendo de lo que tu quieras hacer escoge cualquiera.
En mi caso, como siempre uso un formato de fecha y hora estandar para todo, pues lo hago con la variable esa del sistema que te he puesto y asi me evito programar TODO cada vez que quiera convertir fechas u horas.
Espero te ayude.

PD: Se aplica tambien para el caso de las fechas con la variable ShortDateFormat.
Especial atencion a "h:nn:ss" es asi, con "n" para especificar los minutos, ya que la "m", es para definir formato de mes.
Una sola "n" al igual que una sola "h" te define como un numero
ejemplo: 8:06AM = "h:n" = 8:6
"h:nn"= 8:06
"hh:nn"= 08:06

Última edición por paladincubano fecha: 21-05-2008 a las 17:22:01.
Responder Con Cita
  #6  
Antiguo 22-05-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Cita:
Empezado por paladincubano Ver Mensaje
Cual fue el que te sirvio de las dos respuestas?
Yo he editado la mia unas cuantas veces porque lo hice a memoria y no recordaba mucho, pero ya la final es la que esta echa.
Mira.
El primer ejemplo que te pusieron esta muy bien, pero es para solo en un caso especifico. El que te pongo yo, es para cualquier tipo de hora encontrada en tu aplicacion, desde los mismos TDatetime hasta las mascaras de fecha.
Dependiendo de lo que tu quieras hacer escoge cualquiera.
En mi caso, como siempre uso un formato de fecha y hora estandar para todo, pues lo hago con la variable esa del sistema que te he puesto y asi me evito programar TODO cada vez que quiera convertir fechas u horas.
Espero te ayude.

PD: Se aplica tambien para el caso de las fechas con la variable ShortDateFormat.
Especial atencion a "h:nn:ss" es asi, con "n" para especificar los minutos, ya que la "m", es para definir formato de mes.
Una sola "n" al igual que una sola "h" te define como un numero
ejemplo: 8:06AM = "h:n" = 8:6
"h:nn"= 8:06
"hh:nn"= 08:06
Esto de cambiar las configuraciones del usuario (aun que sea local) no es recomendable, me refiero a que si el usuario lo tiene configurado para ver las fechas en formato de 12 horas no puedes ir tu y cambiárselo porque a ti te viene bien para guardar en la BD (proceso interno en tu programa). Es mejor controlar tu el "cómo" se guarda que no cambiárselo al usuario.

Saludos.
Responder Con Cita
  #7  
Antiguo 22-05-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Claro man, yo entiendo lo que tu dices, por eso te digo que depende de la aplicacion que estes desarrollando, en mi caso, las fechas para los clientes son transparentes y nunca interactuan con ella. Solo la controlo yo para manejar la caducidad y demas cosas en la BD. Pero nunca interactuan con ella. POr eso te digo que en mi caso me conviene mas la variable porque no tengo que estar formateando ni conviertiendo formatos.
Gracias por la aclaracion.
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cambiar formato de hora desve Varios 3 07-03-2008 22:33:44
cambiar formato ercrizeporta Varios 4 10-10-2007 18:02:11
Cambiar formato de fecha BlueSteel Varios 2 16-02-2005 23:49:45
Como cambiar el formato de un QRSysData en formato fecha Bitbanner Tablas planas 1 13-02-2005 12:33:26
Cambiar el formato de fecha VolaRe Varios 4 19-02-2004 21:46:16


La franja horaria es GMT +2. Ahora son las 23:04:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi