Como título surgest necesito del formato de la función ahora () para mostrar en el «formato AAAAMMDDHHMMSS»

Me hicieron una obra de teatro tratando de dividir a cabo, pero esto quita los ceros a la izquierda que necesito para retener

ejemplo a continuación mydt fue «27/02/2015 13:02:27»

mydt = now() 

MSGBOX Year(mydt)& Month(mydt)& Day(mydt)& Hour(mydt)& Minute(mydt)& second(mydt)

esto devuelve «201522713227»

la necesito para volver «20150227130227″ yo podría usar una si < 10 pero debe haber un impermeable manera

InformationsquelleAutor Mike Harris | 2015-02-27

4 Comentarios

  1. 8

    Gracias a @Ekkehard.Horner y @Bagger

    He revisado tu consejo y he elegido para ir con los de abajo, pero adaptado a mis necesidades.

    He elegido este, ya que es mucho más usable/adaptable puedo cambiar y cambiar los formatos de fecha, como se requiere.

    Dim g_oSB : Set g_oSB = CreateObject("System.Text.StringBuilder")
    
    Function sprintf(sFmt, aData)
       g_oSB.AppendFormat_4 sFmt, (aData)
       sprintf = g_oSB.ToString()
       g_oSB.Length = 0
    End Function
    
    '-------------------------------------------------------------------
    
    Dim dt : dt = now()
    
    WScript.Echo sprintf("{0:yyyyMMddhhmmss}", Array(dt))

    Devuelve el valor en formato aaaammddhhmmss

    20150302110727

    Si solo se requiere la fecha sólo tendría que cambiar el sprintf

    sprintf("{0:yyyyMMdd}", Array(dt))

    Solo quiero el tiempo

    sprintf("{0:hhmmss}", Array(dt))

    y así sucesivamente…..

  2. 1

    Aquí es mi método que he utilizado para que sea agradable.
    Bueno para el análisis de los datos para SQL.

    function getDateFormatedWithDash(DateVal)
        rtnDateStr = year(DateVal)
        m=month(DateVal)
        d=day(DateVal)
        h=Hour(DateVal)
        Min=Minute(DateVal)
        sec=second(DateVal)
    
        if month(DateVal)<10 then
            m="0"&month(DateVal)
        end if
    
        if day(DateVal)<10 then
            d="0"&day(DateVal)
        end if
    
        if Hour(DateVal)<10 then
            h="0"&Hour(DateVal)
        end if  
    
        if Minute(DateVal)<10 then
            Min="0"&Minute(DateVal)
        end if  
    
        if second(DateVal)<10 then
            sec="0"&second(DateVal)
        end if
    
    
        rtnDateStr = rtnDateStr&"-"&m&"-"&d&" "&h&":"&Min&":"&sec
        getDateFormatedWithDash=rtnDateStr
    end function
  3. 0

    Funciona esto, también se podría usar regex

    mydt = now() 
    wscript.echo (Month(mydt))
    mm = add0( Month(mydt))
    dd = add0( Day(mydt))
    hh = add0( Hour(mydt))
    mn = add0( Minute(mydt))
    ss = add0( second(mydt))
    
    MSGBOX Year(mydt)& mm & dd & hh & mn & ss
    
    Function add0 (testIn)
     Select Case Len(testIn) < 2
       CASE TRUE
         add0 = "0" & testIn
       Case Else
         add0 = testIn
      End Select      
    End Function    
  4. 0

    Aquí es un ejemplo de regex

      mydt = now()
    Set regEx = New RegExp
      With regEx
      .Pattern = "\b\d\b"
      .IgnoreCase = True
      .Global = True
     End With
    
    wscript.echo  Year(mydt)& _
      regEx.Replace(Month(mydt),"0" Month(mydt)) & _
      regEx.Replace(Day(mydt),"0" & Day(mydt)) &_
      regEx.Replace(Hour(mydt),"0" & Hour(mydt)) &_
      regEx.Replace(Minute(mydt),"0" & Minute(mydt)) & _ 
      regEx.Replace(second(mydt),"0" & second(mydt))
    
    Set RegularExpressionObject = nothing

Dejar respuesta

Please enter your comment!
Please enter your name here