5

ミリ秒を含むcoldfusionのタイムスタンプを作成しようとしています。

私の問題は、先行ゼロを制御することでフォーマットの一貫性を保つことができるコードがどこにも見つからないことです。

これは私のフォーマットです:

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

「HH:mm:ssll」のようなもの、または常に9桁のタイムスタンプを持つことを保証する他のメソッドが必要です。

4

4 に答える 4

8

先行ゼロのあるミリ秒?

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

参考までに、l最大3桁です。ですから、9桁の制限についてはよくわかりません。

于 2012-07-18T22:11:47.747 に答える
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 に答える
2

あなたが言ったとき、あなたはほとんどそれを持っていました:

「HH:mm:ssll」のようなものが必要です...

3番目の「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コードの一部についてのヘンリーへのクレジット

于 2012-07-19T15:04:38.803 に答える