java - como verificar se uma instância do calendário foi originalmente uma data errada

Eu tenho uma instância do Calendário, analisada a partir da data e hora XSD por meio dojavax.xml.bind.DatatypeConverter.parseDateTime método por JAXB.

Em tempo de execução, estou em um serviço da web e quero saber se o datetime xsd original era válido (mês <12, dia <31, 30, 29, 28 de acordo com o mês ... ect) ou não. Exemplo: esta é uma data válida:2015-07-30T09:32:05.543+02:00 e isso não é:2015-07-35T09:32:05.543+02:00

Eu tentei usarsetLenient na instância no serviço da web, mas não parece gerar uma exceção quando a data original estava errada.

Há alguma forma de fazer isso? Meu palpite é dizer ao JAXB para fazê-lo da maneira certa noglobal.jaxb arquivo, aqui está o que eu uso agora:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
               xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema"
               jaxb:extensionBindingPrefixes="xjc">
    <jaxb:globalBindings>
        <xjc:simple/>
        <xjc:serializable uid="-1"/>
        <jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
                       parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
                       printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
    </jaxb:globalBindings>
</jaxb:bindings>

Qualquer ajuda seria apreciada. Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion