![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Devolver los formatos de fecha de Windows
Hola amigos del foro:
Utilizo Delphi 2010 y quisiera saber si hay alguna función o algo parecido que devuelva los formatos de fecha posibles de Windows, es decir, en mi caso por ejemplo tengo Windows 7 y al configurar el formato de fecha en "Configuración regional y de idioma" para la "Fecha corta" el ComboBox me muestra las siguientes alternativas: dd/MM/aaaa, dd/MM/aa, d/M/aa, dd-MM-aa, aaaa-MM-dd. ¿Es posible devolver estos cinco formatos? Saludos. |
#2
|
||||
|
||||
Creo que no se entiende exactamente qué quieres hacer o qué problema tienes.
Tú puedes usar el formato que quieras, qué quieres decir con "¿Es posible devolver estos cinco formatos?"
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Aunque no lo veo muy clara la pregunta, entiendo que si utilizas las propiedades que te brinde la máscara del componente que utilices lograrás lo que quieres y sinó utiliza al función FormatDateTime.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#4
|
|||
|
|||
En primer lugar gracias por sus comentarios.
A ver si me explico. Estoy desarrollando una aplicación que, entre otras cosas, lee datos separados por "pipes" en un socket TCP. Entre esos datos me viene la fecha y la hora en esta forma: ...|...|20120117074642|...|... (sería añomesdiahoraminutosegundo). Lo primero que hago es descomponer la fecha/hora en sus partes, o sea:
Ahora, el meollo de la cuestión está en esta sentencia: 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". Luego probé colocando primero el mes y luego el día obteniendo el efecto contrario, es decir, funciona con el formato "mm/dd/yyyy" pero error en formato "dd/mm/yyyy". La idea es que la aplicación se ajuste al formato de fecha establecido en la Configuración regional y no al revés. Entonces, la única alternativa que se me ocurrió es poder "leer" todos los formatos de fecha que el SO me permite elegir y comparar con lo que está realmente establecido. En mi mensaje anterior les decía por ejemplo que dos de los formatos eran "dd/MM/yyyy" y "dd/MM/yy", los cuales obviamente para Delphi son diferentes. Por eso es que preguntaba si se podía devolver "esos cinco formatos" que es mi caso, compararlos con lo que se definió efectivamente en la Configuración regional y en base a eso decirle a la aplicación que la fecha será "Dia + '/' + Mes + '/' + Anio" o "Mes + '/' + Dia + '/' + Anio" o algún otro. Quizás ustedes tengan alguna alternativa mejor a lo que yo estoy planteando. Bueno, espero ahora sí haber sido claro. Saludos. Última edición por Leviatan fecha: 04-03-2012 a las 05:12:13. |
#5
|
||||
|
||||
Cita:
Podrías evaluar previamente la configuración actual para luego hacer la conversión correspondiente:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
|||
|
|||
Gracias ecfisa.
Lo resolví de una manera similar a lo que me estás comentando:
Inclusive tengo que decirle a la aplicación si los separadores serán barras o guiones, porque aún en esto me daba error de formato. Gracias y saludos. Última edición por Leviatan fecha: 04-03-2012 a las 17:44:20. |
#7
|
||||
|
||||
Hola,
Creo que te estás complicando innecesariamente. Si ya tienes separados los valores de añom mes, dia, etc. ¿por qué no simplemente los concatenas en el formato que deseas?
// Saludos |
#8
|
|||
|
|||
Hola roman; gracias por responder.
Lo que pasa es que yo en realidad no mostré todo el código de la función. Aparte de convertir al formato que devuelve la función, antes de eso tengo que hacer una operación con la fecha: sumar o restar horas según la zona horaria del equipo (-UTC o +UTC) en el cual esté instalada la app. Por eso solo mostré la parte que a mí me interesaba la cual era poder determinar el formato de la fecha. Este es el código definitivo:
Fue también responsabilidad mía no incluir todo el código a fin de evitar confusiones. Un abrazo. |
#9
|
||||
|
||||
En ese caso, puedes hacer algo como esto:
// Saludos |
#10
|
|||
|
|||
Gracias.
Justamente por eso quería saber si había una alternativa mejor de solución, ya que la mía me parece un poco rebuscada. La tuya me parece una solución elegante. La pruebo y te cuento que tal me fue. Saludos. |
#11
|
|||
|
|||
Gracias roman.
Me ha funcionado correctamente. Ahora mi código es más simple, claro y manejable. Saludos. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con formatos de idioma Windows 7 | SAGOAN | Varios | 6 | 04-07-2011 10:37:28 |
Consulta con formatos de fecha | pau_elx | SQL | 4 | 26-05-2011 08:13:37 |
convertir formatos fecha | davidgaldo | Varios | 4 | 09-11-2005 15:49:35 |
Fecha de Windows | sebas | API de Windows | 1 | 08-07-2003 18:42:20 |
Bloquear Fecha en Windows | Gabriel A Reyes | API de Windows | 9 | 04-07-2003 14:11:14 |
![]() |
|