Функция формата даты для отображения даты как "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
Другие вопросы по тегам