Question

J'utilise SVNKit pour récupérer les journaux à partir d'un serveur SVN. J'utilise la version 1.3.2 SVNKit.

Tout fonctionne très bien et bien, sauf pour un problème bizarre que j'ai été voir ces derniers temps. La date d'engagement Retrieve est se converti en le fuseau horaire du système en cours d'exécution du programme et introduit ainsi un décalage changeant ainsi le temps ce qui est de vues dans les journaux (en utilisant tortoisesvn) et en sortie de mon programme.


logEntries = (Collection)repository.log(new String[] {""}, null, startRevision, endRevision, true, true);
for (SVNLogEntry entry : logEntries) {
    Date date = entry.getDate();
    ...
    ...
}

Ce que je veux est la sortie de date doit être identique à ce qui est vu dans les journaux SVN.

Était-ce utile?

La solution

Vous ne montre pas vraiment comment vous « sortie » la date, ce qui est probablement la pièce correspondante du code ici. Je suppose que vous utilisez toString().

A magasins d'objets java.util.Date temps comme un décalage en millisecondes après le 1er Janvier 1970. 00:00:00 GMT . toString convertira que le fuseau horaire local et un format plus convivial.

Pour imprimer l'heure UTC, essayez ceci:

TimeZone utc = TimeZone.getTimeZone("GMT:00");
DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.LONG);
dateFormat.setTimeZone(utc);
System.out.println(dateFormat.format(date));
  

Ce que je veux est la sortie de date doit être identique à ce qui est vu dans les journaux SVN »

AFAIK ce que vous « voyez » dans un client de SVN est également converti en fuseau horaire local, tandis qu'à l'intérieur des magasins SVN le temps engagent dans le fuseau horaire UTC. C'est la bonne chose à faire; tous les logiciels devraient traiter les données de temps de cette manière. Si vous montrer quoi que ce soit d'autre, vous devez informer l'utilisateur en montrant clairement les informations de fuseau horaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top