Bug nos campos data/hora do Dynamics CRM 2011 ao concluir sem sair do campo

Esses dias, me foi relatado um problema bem estranho por um cliente:
Ao marcar uma atividade como concluída, a hora de um campo data/hora está sendo salva com 00:00, ou seja, a hora está sendo descartada. Apenas o dia era mantido.

Após uma série de teste, pude perceber um bug que ocorre com todos os campos data/hora do Microsoft Dynamics CRM 2011.
Faça você mesmo o teste, vá até uma entidade que possua um campo data/hora e escolha uma data no seletor de data (o calendário), preencha uma hora digitando-a diretamente ou escolhendo o horário na lista de seleção (tanto faz) e, sem sair do campo, portanto, logo após ter informado a hora, clique em Marcar como Concluído. (Não testei com o botão salvar pois no nosso caso, o mesmo estava bloqueado no formulário)

Perceba que a hora não foi salva e o registro armazenou 00:00, que é a hora padrão. Podemos deduzir que o valor é salvo ao sair do campo, o que pode produzir esse problema.

Para resolver essa situação, criei uma função javascript genérica que deve ser executada no onSave do formulário.
Perceba que será necessário carregar o jQuery (qualquer versão a partir da 1.4) antes de carregar este snippet.

Ao criar o manipulador de evento para esta função, informe como parâmetro o nome do atributo, exemplo: ‘new_meuCampoDataHora’, veja:

O script:

function corrigirCampoData(nomeAtributo) {
    var horaTexto = $("#" + nomeAtributo).find("input[name='timeInput']").val();
    if (horaTexto.indexOf(':') > -1) {
        var hora = horaTexto.substring(0, 2);
        var minuto = horaTexto.substring(3);
 
        var dthAtributo = Xrm.Page.getAttribute(nomeAtributo).getValue();
        if (dthAtributo != null) {
            dthAtributo.setHours(hora);
            dthAtributo.setMinutes(minuto);
 
            Xrm.Page.getAttribute(nomeAtributo).setValue(dthAtributo);
        }
    }
}