Render array value empty for Datetime field
The solution was $item['value']['#default_value']-&gt;render(). This outputs the value in the following format Y-m-d H:i:s e.

Alternatively, calling format('Y-m-d') or any other format string will update accordingly

because '#default_value' was of type DrupalDateTime which must not implement jsonSerialize this is why I was getting and empty object for a value when dumping out as JSON.