我想在ColdFusion中创建一个时间戳,包括毫秒。
我的问题是,我无法找到任何代码可以通过控制前导零来保持格式一致。
这是我的格式:
<cfoutput>
<cfset todayDate = #Now()#>
<ul>
<li>#TimeFormat(todayDate, "HH:mm:ssl")# </li>
</ul>
</cfoutput>
我只需要像“HH:mm:ssll”或其他方法,以确保我始终拥有9位数字的时间戳。
我想在ColdFusion中创建一个时间戳,包括毫秒。
我的问题是,我无法找到任何代码可以通过控制前导零来保持格式一致。
这是我的格式:
<cfoutput>
<cfset todayDate = #Now()#>
<ul>
<li>#TimeFormat(todayDate, "HH:mm:ssl")# </li>
</ul>
</cfoutput>
开头有零的毫秒数?
<li>
#TimeFormat(todayDate, "HH:mm:ss")##NumberFormat(TimeFormat(todayDate, "l"),"000")#
</li>
提供信息,l
最多只有3位数字。因此,我不确定你所说的9位数字限制。
<cfscript>
createObject('java','java.text.SimpleDateFormat').init('yyyy-MM-dd HH:mm:ss.SSS Z').format(now());
</cfscript>
生成 2010年07月19日 11:40:14.051 EST
<cfscript>
createObject('java','java.text.SimpleDateFormat').init('HH:mm:ss.SSS').format(now());
</cfscript>
生成带前导零的09:45:12.009
当你说:
我只需要像“HH:mm:ssll”这样的东西...
你已经差不多答对了,只需再加一个“l”,就可以得到正确数量的占位符:
<cfoutput>
<cfset todayDate = #Now()#>
<ul>
<li>#TimeFormat(todayDate, "HH:mm:sslll")# </li>
</ul>
</cfoutput>
<cfscript>
function getUniqueID() {
rightNow = now();
return (dateformat(rightNow,'yyyymmdd') & timeformat(rightNow,"HHmmss") &NumberFormat(TimeFormat(rightNow, "l"),"000") & RandRange(10000, 99999));
}
</cfscript>
<cfdump var="#getUniqueID()#">
分享一下我的代码,以防有人需要为任何目的创建独特的时间戳。
感谢Henry提供代码中 NumberFormat
的部分
createUuid()
,如果需要时间戳前缀,请使用getTickCount()
。 - Peter Boughton