Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/07/2008, 01:46
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 16 años, 11 meses
Puntos: 7
Respuesta: Cambiar formato de fecha

Hola!

Hasta donde yo se, no se puede convertir una fecha en formato largo de forma automática, entre otras cosas por aquello de las localizaciones (no todos los paises usan el mismo formato).

Este código fue un experimento que hice para salir del paso, probablemente te sirva de guía:

Código:
Public Function LongToShortDate(ByVal wFecha As String) As Long
Dim vComp()     As String
Dim nMes        As Long

    LongToShortDate = 0
    
    vComp = Split(wFecha, " ")
    
    nMes = InStr(1, "ene feb mar abr may jun jul ago sep oct nov dic", Left(vComp(3), 3), vbTextCompare)
    
    LongToShortDate = CDate(vComp(1) & "/" & Format((nMes / 4) + 1, "00") & "/" & vComp(5))
    
    Erase vComp
End Function
Ten en cuenta que esa función necesita que la fecha de entrada tenga un formato "<lo que sea> <dia> <lo que sea> <mes en letras (al menos 3)> <lo que sea> <año>" (los espacios son vitales) y que la fecha es devuelta como un número a partir del formato "dd/MM/yyyy" (suelo trabajar las fechas como números, es más cómodo para mí).

Por ejemplo, la llamada a
Código:
Format(LongToShortDate("jue, 03 de Julio de 2008"), "Short Date")
devuelve "03/07/2008".

Te recuerdo que este código fue para salir del paso en una situación concreta, así que debes añadirle todas las comprobaciones que se te ocurran para evitar problemas cuando pongas tu aplicación en producción. De hecho, si el mes no está escrito correctamente, te dará un error:

Código:
Format(LongToShortDate("jue, 03 de Kulio de 2008"), "Short Date")  ' Debacle! =]
Saludos!

Última edición por Txoco; 03/07/2008 a las 01:49 Razón: Completar algunos detalles