2012-04-02 2 views
2

Я пытаюсь написать vbscript, который будет записывать дату и время в файл конфигурации определенным образом. Я изучаю веб-страницы и не смог определить, как правильно отформатировать функцию секунд. Даже не уверен, что это возможно. Любая помощь или ссылки были бы весьма признательны. Мой вопрос: есть ли способ форматировать функцию месяца и секунды, чтобы месяц отображался как ММ, если одно число месяц и секунда будут отображаться на 3 десятичных знака?Vbscript Месяц и вторая функция до 3 знаков после запятой

Вот что я пробовал до сих пор, но он недействителен.

myDate = (Year(Now) & "-" & Month(date) & "-" & day(date) & "T" & Hour(Time) & ":" & Minute(time) & ":" & Second(time) ' Displays as YYYY-MM-DDTHH:MM:SS 

second = FormatNumber(Second, 3) 

write.write(myDate) 

Мне нужно, чтобы он отображался как ГГГГ-ММ-ДДД: MM: SS.SSS. Заранее спасибо.

ответ

1

Используйте функцию пэда панели с дополнительными нулями. Используйте таймер для захвата миллисекунд.

Option Explicit 
Dim timerNow, myNow, myDate 

timerNow = cStr(cdbl(timer)) 
myNow = now() 

myDate = (Year(myNow) & "-" & _ 
    zeropad(Month(myNow),2) & "-" & _ 
    zeroPad(day(myNow),2) & "T" & _ 
    zeroPad(Hour(myNow),2) & ":" & _ 
    zeroPad(Minute(myNow),2) & ":" & _ 
    zeroPad(Second(myNow),2) & "." & _ 
    left(split(timerNow, ".")(1),3)) ' Displays as YYYY-MM-DDTHH:MM:SS.SSS 


Private Function zeroPad(byval strInput, byval padCount) 
    If len(strInput) < padCount Then 
     zeroPad = string(padCount - len(strInput), "0") & strInput 
    Else 
     zeroPad = strInput 
    End If 
End Function 

Одна вещь может пойти не так здесь: Когда время просто прыгает от n.999 п + 1,000 при myNow и timerNow извлекаются. Idealiter вы бы извлекли myNow из timerNow, но это оставлено как упражнение для читателя.

2

Now() Accuracy in VBScript

Кажется, в VBScript функция «Now()» может быть преобразовано в два раза, чтобы обеспечить этот тип точности.

1
CStr(Year(Date())) & "-" & Right("0" & CStr(Month(Date())), 2) & "-" & Right("0" & CStr(Day(Date())), 2) 

Этот код будет создавать YYYY-MM-DD

Я думаю, вы получите эту идею и будешь иметь возможность добавить компонент времени сами

Смежные вопросы