これは契約英語ということではなく通常の英単語の使い方なのですが、untilは「~まで」、byは「~までに」と、それぞれ期間と期限を表します。
- I will continue the work until 5pm. 私はその仕事を午後5時まで続けます。
- I will finish this work by 5pm. 私はこの仕事を午後5時までに終了します。
byは「before」や「prior to」に置き換えることができますが、「by + 時」と「before + 時」では、前者はその「時」を含むのに対して、後者はその「時」を含まないという違いがあります。prior to も beforeと同じです。
そのためby 5pmであれば「午後5時まで」になりますが、before 5pmであれば「午後5時前」となり、ミクロな世界ですが理論的には差があります。ただ実務上困ることも無いでしょうし、同じと考えても良いのではないでしょうか。
これに対して「by December 22, 2023」と「before December 22, 2023」では一日の差が出ます。そのためその日を含むときにbeforeを使う場合は「on or before December 22, 2023」とし、「on」を補うようにします。