5

我正在尝试在冷融合中创建一个时间戳,其中包括毫秒。

我的问题是我无法在任何地方找到可以通过控制前导零来保持格式一致的代码。

这是我的格式:

<cfoutput> 
<cfset todayDate = #Now()#> 
<ul> 
    <li>#TimeFormat(todayDate, "HH:mm:ssl")# </li>
</ul> 
</cfoutput>  

我只需要像“HH:mm:ssll”这样的东西或其他一些方法来确保我始终拥有一个 9 位数的时间戳。

4

4 回答 4

8

使用java SimpleDateFormat

<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- 带前导零

于 2012-07-19T01:39:30.533 回答
8

带前导零的毫秒?

<li>
  #TimeFormat(todayDate, "HH:mm:ss")##NumberFormat(TimeFormat(todayDate, "l"),"000")#
</li>

仅供参考,l最多 3 位数字。所以我不确定你的 9 位数限制。

于 2012-07-18T22:11:47.747 回答
2

当你说:

我只需要像“HH:mm:ssll”这样的东西......

只需添加第三个“l”即可获得正确数量的占位符:

<cfoutput> 
    <cfset todayDate = #Now()#> 
        <ul> 
            <li>#TimeFormat(todayDate, "HH:mm:sslll")# </li>
        </ul> 
</cfoutput>  
于 2017-01-20T12:41:49.677 回答
0
    <cfscript>
    function getUniqueID() {
        rightNow = now();
return (dateformat(rightNow,'yyyymmdd') & timeformat(rightNow,"HHmmss") &NumberFormat(TimeFormat(rightNow, "l"),"000") & RandRange(10000, 99999));

    }
    </cfscript>

<cfdump var="#getUniqueID()#">

只是分享我的代码,以防有人需要为任何目的创建一个唯一的时间戳。

NumberFormat代码部分归功于 Henry

于 2012-07-19T15:04:38.803 回答