[removed] Return formatted date

前端 未结 3 1189
星月不相逢
星月不相逢 2020-12-07 05:35

I am executing a VBS file that returns the modified date of another file:

Set objFS=CreateObject(\"Scripting.FileSystemObject\")
Set objArgs = WScript.Argume         


        
相关标签:
3条回答
  • 2020-12-07 06:00

    As demonstrated here and https://stackoverflow.com/a/21280396/603855, vou can use a .Net StringBuilder to solve all your formatting problem without depending on locales or doing extra/specific work:

    Option Explicit
    
    Class cFormat
      Private m_oSB
      Private Sub Class_Initialize()
        Set m_oSB = CreateObject("System.Text.StringBuilder")
      End Sub ' Class_Initialize
      Public Function formatOne(sFmt, vElm)
        m_oSB.AppendFormat sFmt, vElm
        formatOne = m_oSB.ToString()
        m_oSB.Length = 0
      End Function ' formatOne
      Public Function formatArray(sFmt, aElms)
        m_oSB.AppendFormat_4 sFmt, (aElms)
        formatArray = m_oSB.ToString()
        m_oSB.Length = 0
      End Function ' formatArray
    End Class ' cFormat
    
    Dim oFmt : Set oFmt = New cFormat
    WScript.Echo oFmt.FormatOne("Today: {0:dd\/MM\/yyyy}", Date())
    

    output:

    Today: 08/02/2014
    
    0 讨论(0)
  • 2020-12-07 06:01

    The value returned by objFS.GetFile(strFile).DateLastModified is a date/time value. You can format this into a string using a formatting or conversion function:

    dateLastModified = objFS.GetFile(strFile).DateLastModified
    WScript.Echo FormatDateTime(dateLastModified, 2)
    

    This will format the date/time value into a short date. How this is done depends on your current regional settings. E.g. in some cultures you will have "MM/dd/yyyy" and in other cultures "dd-MM-yyyy" etc.

    You can also get complete control over the formatting by extracting the day, month and year part and putting them together into a string:

    dateLastModified = objFS.GetFile(strFile).DateLastModified
    WScript.Echo Day(dateLastModified) & "/" & Month(dateLastModified) & "/" & Year(dateLastModified)
    
    0 讨论(0)
  • 2020-12-07 06:04

    You could just take the date modified of the file and pick it apart a bit..

    So if the last modified date was 11/30/2014, this would return 30/11/2014 regardless of regional PC settings (which FormatDateTime() ignores)

    WScript.Echo convertDate(objFS.GetFile(strFile).DateLastModified)
    
    Function convertDate(strDate)
      convertDate = DatePart("d", strDate) & "/" & DatePart("m", strDate) & "/" & DatePart("yyyy", strDate)
    End Function
    
    0 讨论(0)
提交回复
热议问题