|
Página 1 de 1
|
¿Como Formateo La Siguiente Fecha?
Autor |
Mensaje |
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
¿Como Formateo La Siguiente Fecha?
Hola,
Tengo estas fechas:
"8/2/19 10:00" = "d/m/yy hh:mm"
"8/12/19" = "d/m/yy"
Yo necesito hacer: "yyyy/mm/dd hh:mm"
"2019/02/08 10:00"
"2019/12/08 00:00"
Como lo puedo hacer por código, que funciones o conversiones dispongo en gambas más apropiadamente.
Nota: Son cadenas de texto.
¿Quizás modifico todo según cadenas de texto y aplico reglas para rellenar los ceros?
Gracias por adelantado.
|
#1 Sabado, 24 Agosto 2019, 21:56 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: ¿Como Formateo La Siguiente Fecha?
Podes usar la función split en combinación con Format
Saludos.
|
#2 Sabado, 24 Agosto 2019, 22:00 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ¿Como Formateo La Siguiente Fecha?
Podes usar la función split en combinación con Format
Saludos.
Me gusta tu idea tincho, Gracias eres un Sol
Ahora falta que me funcione para todos los casos.
Saludos.
|
#3 Sabado, 24 Agosto 2019, 22:05 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: ¿Como Formateo La Siguiente Fecha?
=================== No podemos regresar
|
#4 Sabado, 24 Agosto 2019, 22:08 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ¿Como Formateo La Siguiente Fecha?
¿Sabes?, yo probé str1 = Format("8/2/19 10:00", "yyyy/mm/dd hh:mm")
Y me cascaba, pero seguro que es por que estaba mal, como veo en tu ejemplo.
Muchísimas gracias lo prueba y si pita bien ya te cuento.
última edición por gambafeliz el Sabado, 24 Agosto 2019, 22:11; editado 1 vez
|
#5 Sabado, 24 Agosto 2019, 22:11 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿Como Formateo La Siguiente Fecha?
GambaFeliz:
Citar:
¿Sabes?, yo probé str1 = Format("8/2/19 10:00", "yyyy/mm/dd hh:mm")
Efectivamente. Lo mismo que estaba intentando hacer. No creía en principio que fuera necesario "Val".
Se me hacía raro que Format no entendiese el solo la cadena sin una conversión.
El error que da es:
Citar:
Type mismatch: wanted Float, got String instead
Las conversiones.
La ayuda dice que Format puede:
Citar:
La función puede dar formato a días, tiempo, números, y monedas.
Pero no dice que a cadenas. Esta especificando los tipos arriba.
Entonces Val convierte esa cadena a una fecha. Probablemente Val lo convierta primero al formato mes-día-año y
luego se formatea al formato de fecha que queremos.
Mi fallo es que usando la función Now ya tengo la fecha actual y luego con format la formateaba como me gustaba a mi.
Now lógicamente da una fecha no es una cadena. Así que por eso se debe usar Val cuando queremos convertir de cadena a fecha.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Domingo, 25 Agosto 2019, 08:37; editado 1 vez
|
#6 Domingo, 25 Agosto 2019, 08:36 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ¿Como Formateo La Siguiente Fecha?
GambaFeliz:
Citar:
¿Sabes?, yo probé str1 = Format("8/2/19 10:00", "yyyy/mm/dd hh:mm")
Efectivamente. Lo mismo que estaba intentando hacer. No creía en principio que fuera necesario "Val".
Se me hacía raro que Format no entendiese el solo la cadena sin una conversión.
El error que da es:
Citar:
Type mismatch: wanted Float, got String instead
Las conversiones.
La ayuda dice que Format puede:
Citar:
La función puede dar formato a días, tiempo, números, y monedas.
Pero no dice que a cadenas. Esta especificando los tipos arriba.
Entonces Val convierte esa cadena a una fecha. Probablemente Val lo convierta primero al formato mes-día-año y
luego se formatea al formato de fecha que queremos.
Mi fallo es que usando la función Now ya tengo la fecha actual y luego con format la formateaba como me gustaba a mi.
Now lógicamente da una fecha no es una cadena. Así que por eso se debe usar Val cuando queremos convertir de cadena a fecha.
Saludos
Me gusta, joven, tu detallada explicación. Esta claro que shordi a dado la solución mejor para todos. tincho en mi particular dio la solución enrebezada propia para gente como yo y él mismo. Pero tu has dado la explicación más apropiada para terminar este hilo.
Por lo tanto creo que cuando un novato entre por este hilo lo tendrá muy claro con estas lineas de explicación.
Gracias, Shell y a todos.
última edición por gambafeliz el Domingo, 25 Agosto 2019, 09:11; editado 1 vez
|
#7 Domingo, 25 Agosto 2019, 09:09 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: ¿Como Formateo La Siguiente Fecha?
Citar: . Probablemente Val lo convierta primero al formato mes-día-año y
luego se formatea al formato de fecha que queremos.
No exactamente. Tenéis que tener en cuenta que las fechas son números y no tienen formato per se. Para verlas hay que convertirlas pero... ¿Qué fecha queremos ver, la que figura en la base de datos o nuestra fecha local equivalente?¿y qué fecha queremos grabar en la base de datos, la nuestra local o la fecha del servidor? Es decir, hay fechas absolutas (que sería directamente la que hay en la BD, sin más) y fechas relativas (que serían la traducción de esa fecha a nuestro horario local).
Si quiero saber a qué hora se subió un post a una Base de Datos y me dice que a las tres de la mañana ¿son las tres de la mañana mías o las de venezuela, por ejemplo, país del autor del post?
gambas contempla ambas posibilidades y nos facilita la labor... pero hay que entenderlo
Considedad éste código:
f = Val("18/2/19 00:00") 'devuelve 18/02/2019 00:00:00 como fecha
Str=str(f) 'devuelve "18/02/2019 00:00:00" Es decir, f convertida a cadena
Str=CStr(f) 'devuelve "02/17/2019 22:00:00" es decir: Hora UTC - localización (UTC+2=horario de verano en España. Al restar las dos horas, cambiamos de día)
f2 = CDate("2/18/19 00:00") 'devuelve 18/02/2019 02:00:00. Es decir: Hora UTC + localización.
Resumiendo:
Val y Str son inversas y manejan horas absolutas.
Cdate y Cstr son inversas y aplican los parámetros de Localización al valor recibido.
Saludos
=================== No podemos regresar
última edición por shordi el Domingo, 25 Agosto 2019, 09:55; editado 1 vez
|
#8 Domingo, 25 Agosto 2019, 09:54 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: ¿Como Formateo La Siguiente Fecha?
Citar: . Probablemente Val lo convierta primero al formato mes-día-año y
luego se formatea al formato de fecha que queremos.
No exactamente. Tenéis que tener en cuenta que las fechas son números y no tienen formato per se. Para verlas hay que convertirlas pero... ¿Qué fecha queremos ver, la que figura en la base de datos o nuestra fecha local equivalente?¿y qué fecha queremos grabar en la base de datos, la nuestra local o la fecha del servidor? Es decir, hay fechas absolutas (que sería directamente la que hay en la BD, sin más) y fechas relativas (que serían la traducción de esa fecha a nuestro horario local).
Si quiero saber a qué hora se subió un post a una Base de Datos y me dice que a las tres de la mañana ¿son las tres de la mañana mías o las de venezuela, por ejemplo, país del autor del post?
gambas contempla ambas posibilidades y nos facilita la labor... pero hay que entenderlo
Considedad éste código:
f = Val("18/2/19 00:00") 'devuelve 18/02/2019 00:00:00 como fecha
Str=str(f) 'devuelve "18/02/2019 00:00:00" Es decir, f convertida a cadena
Str=CStr(f) 'devuelve "02/17/2019 22:00:00" es decir: Hora UTC - localización (UTC+2=horario de verano en España. Al restar las dos horas, cambiamos de día)
f2 = CDate("2/18/19 00:00") 'devuelve 18/02/2019 02:00:00. Es decir: Hora UTC + localización.
Resumiendo:
Val y Str son inversas y manejan horas absolutas.
Cdate y Cstr son inversas y aplican los parámetros de Localización al valor recibido.
Saludos
Polemico !!!! Polemico !!!! Polemico !!!!
Simplemente me encantó tu explicación. Magnific, si Sr.
Ahora el hilo esta feten.
Gracias
Nota: Perdón por mi lamentable inicio previo.
|
#9 Domingo, 25 Agosto 2019, 10:05 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: ¿Como Formateo La Siguiente Fecha?
Shordi:
Interesante el tema de las fechas. Tengo que preparar una pregunta. Pero me gustaría volver a repasar bien
tu respuesta para comprender mejor esos cambios de fecha. Dichoso agosto. Y me estoy viendo septiembre igual..
En "estas fechas".. vuelve mucha gente al curro.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#10 Lunes, 26 Agosto 2019, 08:35 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 2 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|