Groovy の JsonBuilder は、日付のタイムゾーンを JSON 文字列にまったく変換していないようです。より正確には、常に GMT を使用します。たとえば、次のコードは日付を 2001 年 2 月 3 日の午前 0 時、GMT +2 として出力する必要があります。しかし、代わりに、2001-02-02T22:00:00+0000、つまり同じ日付から 2 時間を引いたものを GMT であるかのように出力します。
JsonBuilder にバグはありますか、それとも API を使用する際に考慮する必要がある「既知の機能」ですか?
import groovy.json.JsonBuilder
def c = new GregorianCalendar( new Locale( "fi", "FI" ) ) // GMT+2, no DST by default
c.set( 2001, 1, 3, 0, 0 ) // 2001-02-03T00:00:xx, xx is current seconds. Not set as irrelevant
println ( new JsonBuilder( [ date: c.getTime() ] ) ).toString()