none
Como transformar datos "last modified" de un CIM_DataFile class RRS feed

  • Pregunta

  • si quiero obtener la fecha de modificación de un objeto cmi me devuelve el siguiente valor:

    20171031085409.354870+060

    como puedo convertirlo a fecha en VBA?

    la salida que espero es el siguiente valor :

    31-10-2017 08:54:09 AM.

    Vease el siguiente enlace:

    https://msdn.microsoft.com/en-us/library/aa387236(v=vs.85).aspx#properties

    martes, 31 de octubre de 2017 22:21

Respuestas

  • Hola!

    muy sencillo, solo necesitas utilizar las funciones left y mid para extraer cada uno de los fragmentos de la fecha y dateserial y timeserial para reconstruir la fecha y la hora.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    • Marcado como respuesta Ixxo09 miércoles, 1 de noviembre de 2017 12:27
    miércoles, 1 de noviembre de 2017 11:45
  • Hola!

    de casualidad he descubierto hoy un método ¿mas directo? para hacerlo:

    Public Function ConvertirAFecha(strFecha As String) As Date
    Dim Fecha As Object
    
    Set Fecha = CreateObject("WbemScripting.SWbemDateTime")
    Fecha.Value = strFecha
    ConvertirAFecha = Fecha.GetVarDate
    End Function

    por si te fuera de utilidad.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    • Propuesto como respuesta Emilio Sancha domingo, 5 de noviembre de 2017 17:59
    • Marcado como respuesta Ixxo09 domingo, 5 de noviembre de 2017 20:05
    domingo, 5 de noviembre de 2017 12:18

Todas las respuestas

  • Hola!

    muy sencillo, solo necesitas utilizar las funciones left y mid para extraer cada uno de los fragmentos de la fecha y dateserial y timeserial para reconstruir la fecha y la hora.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    • Marcado como respuesta Ixxo09 miércoles, 1 de noviembre de 2017 12:27
    miércoles, 1 de noviembre de 2017 11:45
  • Gracias Emilio.  La verdad pensé que existía alguna función única para reconstruirla.

    Lo haré como comentas.  Gracias por la respuesta.  Un saludo.


    miércoles, 1 de noviembre de 2017 12:27
  • Hola!

    de casualidad he descubierto hoy un método ¿mas directo? para hacerlo:

    Public Function ConvertirAFecha(strFecha As String) As Date
    Dim Fecha As Object
    
    Set Fecha = CreateObject("WbemScripting.SWbemDateTime")
    Fecha.Value = strFecha
    ConvertirAFecha = Fecha.GetVarDate
    End Function

    por si te fuera de utilidad.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    • Propuesto como respuesta Emilio Sancha domingo, 5 de noviembre de 2017 17:59
    • Marcado como respuesta Ixxo09 domingo, 5 de noviembre de 2017 20:05
    domingo, 5 de noviembre de 2017 12:18
  • Buenas tardes Emilio:

    Que detallazo por tu parte el seguir preocupándote  por buscar una función "mas profesional" jajaja

    He probado la función y funciona perfectamente.  Estoy sumamente agradecido por el esfuerzo que has hecho. 

    Un saludo desde Gijón, Asturias

    PD. Por si alguien le interesa la función que había creado con la sugerencia inicial de  Emilio la expongo a continuación:

    Public Function retDate(ByVal CMI_Date As String) As Date
        Dim Fecha As String, Hora As String, dtmNewDate  As Date, dtmNewTime As Date
        Fecha = Left(CMI_Date, 8)
        Hora = Mid(CMI_Date, 9, 6)
        dtmNewDate = DateSerial(Left(Fecha, 4), Mid(Fecha, 5, 2), Right(Fecha, 2))
        dtmNewTime = TimeSerial(Left(Hora, 2), Mid(Hora, 3, 2), Right(Hora, 2))
        retDate = dtmNewDate & Space(1) & dtmNewTime    'Format(dtmNewTime, "hh:mm:ss AM/PM")
    End Function



    • Editado Ixxo09 domingo, 5 de noviembre de 2017 20:07
    domingo, 5 de noviembre de 2017 14:05