VB脚本日期格式为"YYYYMMDDHHMMSS"

Mik*_*ris 4 string vbscript date formats

作为标题首字母,我需要填充now()函数以格式"YYYYMMDDHHMMSS"显示

我确实有一个关于尝试将其拆分出来的游戏,但这会丢掉我需要保留的前导零

mydt下面的例子是"27/02/2015 13:02:27"

mydt = now() 

MSGBOX Year(mydt)& Month(mydt)& Day(mydt)& Hour(mydt)& Minute(mydt)& second(mydt)
Run Code Online (Sandbox Code Playgroud)

这将返回"201522713227"

我需要它返回"2015 0 22713 0 227"我可以使用if <10但是必须有一个更光滑的方式

Mik*_*ris 8

感谢@ Ekkehard.Horner和@Bagger

我已经审查了您的建议,并选择了下面的内容,以满足我的需求.

我选择了这个,因为它更有用/适应性我可以根据需要交换和更改日期格式.

Dim g_oSB : Set g_oSB = CreateObject("System.Text.StringBuilder")

Function sprintf(sFmt, aData)
   g_oSB.AppendFormat_4 sFmt, (aData)
   sprintf = g_oSB.ToString()
   g_oSB.Length = 0
End Function

'-------------------------------------------------------------------

Dim dt : dt = now()

WScript.Echo sprintf("{0:yyyyMMddhhmmss}", Array(dt))
Run Code Online (Sandbox Code Playgroud)

这将返回所需格式的值yyyyMMddhhmmss

20150302110727
Run Code Online (Sandbox Code Playgroud)

如果您只需要日期,则只需更改sprintf即可

sprintf("{0:yyyyMMdd}", Array(dt))
Run Code Online (Sandbox Code Playgroud)

只想要时间

sprintf("{0:hhmmss}", Array(dt))
Run Code Online (Sandbox Code Playgroud)

等等.....


小智 5

旧帖子,但正在寻找并偶然发现了这一点。最后采用以下示例,该示例也可以用作单行代码......

wscript.echo DateString(now())

Function DateString(dDate)
    DateString = Year(dDate)& right("0" & Month(dDate),2) & right("0" & Day(dDate),2) & right("0" & Hour(dDate),2) & right("0" & Minute(dDate),2) & right("0" & second(dDate),2)
End Function
Run Code Online (Sandbox Code Playgroud)