CakePHP 3 - Analisar Data com LocalStringFormat para corrigir o formato SQL e validação correta

declaramos que as seguintes linhas na função de inicialização do nosso AppController têm globalmente o mesmo formato para exibir datas:

    // default time formats on load
    Time::$defaultLocale = 'de-DE';
    Time::setToStringFormat('dd.MM.YYYY');

Isso funcionou bem. A data é exibida corretamente na exibição. Mas obtemos um erro de validação se queremos salvar a entidade com o campo de data (o valor fornecido é inválido). O validador está configurado da seguinte maneira:

    $validator
        ->add('datefield', 'valid', ['rule' => 'date'])
        ->allowEmpty('datefield');

Aqui, uma depuração da entidade com o campo de data:

Antes do patchEntity:

'datefield' => '08.07.2014'

Após patchEntity:

'datefield' => object(Cake\I18n\Time) {

        'time' => '2014-07-08T00:00:00+0000',
        'timezone' => 'UTC',
        'fixedNowTime' => false

    },
....
'[errors]' => [
        'datefield' => [
            'valid' => 'The provided value is invalid'
        ]
    ],

Existe uma maneira de sempre analisar a Data globalmente no formato correto para salvar a entidade e a validação.

questionAnswers(1)

yourAnswerToTheQuestion