Comment comparer XMLGregorianCalendar avec seulement la partie Date (jour, mois, année)?

Je suis le développement d'un webservice intégré avec le printemps-struts application web, dans XSD il y a un XMLGregorianCalendar type de propriété, disons que le nom de la propriété est trxDate.

Dans SOAPUI application de test, si j'ai inséré la valeur de trxDate avec: publication 2013-02-21, puis j'ai envoyé le soap xml les données de la demande et j'ai imprimé la valeur dans la méthode de service: Système de..println(trxDate), la méthode d'impression de la résultat est le même saisi: publication 2013-02-21.

Maintenant, je suis en train de créer une fonction pour comparer trxDate avec la date actuelle. Je sais que nous pouvons le comparer à l'aide de trxDate.comparer(dateactuelle) de la méthode. Le problème est que je ne sais pas comment le créer XMLGregorianCalendar ensemble de l'objet avec la date actuelle Date en partie seulement (jour, mois et année) à utiliser pour la comparaison.

J'ai essayé avec ce code:

    GregorianCalendar gc = new GregorianCalendar();
    gc.set(GregorianCalendar.HOUR_OF_DAY, 0);
    gc.set(GregorianCalendar.MINUTE, 0);
    gc.set(GregorianCalendar.SECOND, 0);
    gc.set(GregorianCalendar.MILLISECOND, 0);

    XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
    System.out.println(xgc);

Le résultat est:
2013-02-20T00:00:00.000+07:00

Mais je m'attends à:

2013-02-20

Si l'utilisation de la date (xgc) à comparer avec trxDate:

int result = trxDate.compare(xgc);

Le résultat est 2, ce qui signifie: durée INDÉTERMINÉE (à partir de DatatypeConstants classe). Le bon résultat doit être -1, 0 ou 1.

Quel est donc le problème avec mon code?

OriginalL'auteur null | 2013-02-20