2012-04-02 35 views
2

我想寫一個VBScript,將日期和時間以特定的方式寫入配置文件。我一直在研究網絡,並無法找到如何正確格式化秒功能。甚至不確定是否可能。任何幫助或引用將不勝感激。我的問題是,是否有格式化月份和秒功能的方法,以便月份顯示爲MM,如果單個月份和月份顯示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) 

我需要它顯示爲YYYY-MM-DDTHH: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到n + 1.000時myNowtimerNow檢索跳躍。 Idealiter,你將從timerNow中提取myNow,但這留給讀者來練習。

2

Now() Accuracy in VBScript

看來VBScript中的「現在()」函數可以被轉換爲加倍,以提供這種類型的精度。

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

該代碼將創建YYYY-MM-DD

我覺得你的想法,並能夠添加時間組件自己