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.