2014-01-22 102 views
1

是否有任何函數在VBScript中以格式mmm-dd-yyyy顯示日期? 例如。今天的日期爲Jan 22 2014日期格式函數顯示日期爲「2014年1月13日」

我嘗試使用功能

FormatDateTime(Now(), 2) 

我得到了它作爲16 January 2014

是否有任何函數/格式將其作爲Jan 16 2014

+0

大量這方面的例子 - [格式化當前日期和時間(http://stackoverflow.com/a/22575530/692942) – Lankymart

回答

2

通過使用.NET的StringBuilder - 爲所有的格式設置需要 - 你得到的最大收益:

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:MMM dd yyyy}", Date()) 
WScript.Echo oFmt.FormatOne("Today: {0:yyyy-MM-dd [MMMM]}", Date()) 

輸出:

cscript 21279700.vbs 
Today: Jan 22 2014 
Today: 2014-01-22 [Januar] 

有背景看here

0

FormatDate根據系統區域設置中配置的格式格式化日期。如果您使用VBScript內建想自定義日期格式,你會做這樣的:

WScript.Echo MonthName(Month(Now), True) & " " & Day(Now) & " " & Year(Now) 
+2

哦,顯然是在一般情況下,至少在ASP中,你必須做'MONTHNAME (月(指明MyDate))'。 – feetwet

+0

你是對的。顯然,我在(失敗)內存的回答中輸入了片段,而不是實際查找[documentation](https://msdn.microsoft.com/en-us/library/58f13257)。感謝您的高舉。現在已經修復了。 –

-1

以下功能將幫助它在返回「DD-MMM-YYYY HH:MM:SS」格式。 您可以根據需要自定義格式。

Function timeStampForLogging(t) 
    Dim Months 

    Months = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _ 
        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") 


    timeStampForLogging = Right("0" & Day(t),2)& "-" & _ 
    Months(Month(t)-1) & "-" & _ 
    Year(t) & " " & _ 
    Right("0" & Hour(t),2) & ":" & _ 
    Right("0" & Minute(t),2) & ":" & _ 
    Right("0" & Second(t),2) 
End Function 
+1

'月(右(「0」和月(t),2))' - 不嚴重? –

+0

@ Ekkehard.Horner我仍在研究一個vbscript文件和上面的解決方案。並更新了答案,因爲得到了錯誤的輸出結果,但希望這個答案現在好了 – Jitesh

相關問題