jar ファイルを CF_HOME/cfusion/lib/updates にコピーします。
問題
Adobe ColdFusion(2021リリース)では、DateFormat などの日付書式設定関数でマスク D を指定すると、年の通算日が返されるようになりました。下位互換性の問題を回避するため、jvm.config にフラグを追加しました。以下では、このフラグについて説明します。
動作の詳細については、次を参照してください。
解決策
JVM フラグ -Dcoldfusion.datemask.useDasdayofmonth が追加されました。デフォルト値は false ですが、これを true に設定すると、マスクに D(大文字の D)が含まれている場合、マスクは値を d(小文字の d)として扱います(小文字の d はその月の何日であるかを示します)。そのため、このフラグが true に設定されている場合、dateformat(now(), "mm-D-yyyy") は dateformat(now(), "mm-d-yyyy") と同じになります。デフォルトでは、大文字の D はその年の何日目であるかを指定するために使用されます。
例えば、フラグが False に設定されている場合、以下のスニペットを実行すると、次の出力が返されます。
<cfscript> writeOutput(dateformat(now(), "mm-D-yyyy") & "<br/>") writeOutput(dateformat(now(), "mm-DD-yyyy") & "<br/>") </cfscript>
OUTPUT
12-337-2020
12-337-2020
大文字の D は、日付をその年の何日目で表します(最大値は 365)。
フラグが True に設定されている場合、以下のスニペットを実行すると、次の出力が返されます。
<cfscript> writeOutput(dateformat(now(), "mm-D-yyyy") & "<br/>") writeOutput(dateformat(now(), "mm-DD-yyyy") & "<br/>") </cfscript>
OUTPUT
12-2-2020
12-2-2020
修正の適用
-
ダウンロード
-
jvm.config ファイル(CF_HOME/cfusion/bin)で、次のフラグを True に設定します。デフォルト値は False です。
-Dcoldfusion.datemask.useDasdayofmonth=true
-
ColdFusion を再起動します。
-
jar が更新されたことを確認します。ColdFusion Administrator で 「設定要約」に移動し、「CF Server Java Class Path」セクションで jar を探します。