DateFormatのマスクの指定に大文字Dを指定している場合の動作変更について

ColdFusion 2016 Update 3以降より、DateFormat関数のマスクの指定の際に、大文字と小文字の両穂うが使用できるようになりましたが、これに関連して、ColdFusion 2021では、マスクの指定の際に、大文字のDを指定した際の動作が変更されました。

従来のバージョンでは、マスクにDを指定してもdと同じ動作(日を数字で表示。1~31)になりましたが、ColdFusion 2021では、マスクに大文字のDを指定すると、その年の何日目であるかを表す数字が返されるようになりました。

2020年12月17日に下記のプログラムを実行
<cfscript>
    writeOutput(dateformat(now(), "mm-D-yyyy") & "") // 戻り値 12-352-2020
    writeOutput(dateformat(now(), "mm-d-yyyy") & "") // 戻り値 12-17-2020
</cfscript>

この動作の変更により、従来からのプログラムの移行において、DateFormatのマスクにDを使用していた場合には注意が必要です。

2020年12月18日更新

マスクに大文字の D を指定しても従来と同様の動作(dを指定した時と同じ動作)に戻す個別パッチ が公開されました。以下のページから個別パッチをダウンロードできます。

ColdFusion の DateFormat 関数(2021 リリース) (adobe.com)

上記のページに記載されているとおり、この個別パッチを使って従来の動作に戻すには、JVM フラグの追加が必要です。上記でダウンロードした個別パッチを解凍して、hf202100-4210921.jarファイルを所定の場所([cf_root]/{instance}/lib/updates、例: C:\ColdFusion2021\cfusion\lib\updates)に配置し、
-Dcoldfusion.datemask.useDasdayofmonth=true を ColdFusion Administrator の「サーバーの設定 > JavaとJVM」の「JVM引数」に追加(スペース区切りで改行は入れない)してください。その後、ColdFusion を再起動することで、従来の動作に戻すことができます。
 


記事公開日:2020年12月17日
最終更新日:2020年12月18日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.