Функция формата даты для отображения даты как "13 января 2014"
Есть ли функция для отображения даты в формате mmm-dd-yyyy
в VBScript? например. сегодняшняя дата как Jan 22 2014
?
Я пытался использовать функцию
FormatDateTime(Now(), 2)
Я понял как 16 January 2014
,
Есть ли функция / формат, чтобы получить его как Jan 16 2014
?
3 ответа
Решение
Используя.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]
Посмотрите здесь для фона.
FormatDate
форматирует дату в соответствии с форматом, заданным в региональных настройках системы. Если вам нужен пользовательский формат даты с использованием встроенных VBScript, вы должны сделать это так:
WScript.Echo MonthName(Month(Now), True) & " " & Day(Now) & " " & Year(Now)
Ниже поможет функция, которая возвращается в формате "дд-ммм-гггг чч: мм: сс". Вы можете настроить формат в соответствии с вашими потребностями.
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