2016-09-09 1 views
2

J'essaye d'analyser la durée de l'ISO 8601 de 1 mois à l'objet Joda Duration. Pouvez-vous s'il vous plaît aidez-moi pourquoi cette ligne de codeAnalyse du format de durée ISO 8601 à la durée de Joda - IllegalArgumentException

Duration duration = Duration.parse("P1M"); 

jette

java.lang.IllegalArgumentException: Invalid format: "P1M" 
at org.joda.time.convert.StringConverter.getDurationMillis(StringConverter.java:111) 
at org.joda.time.base.BaseDuration.<init>(BaseDuration.java:105) 
at org.joda.time.Duration.<init>(Duration.java:209) 
at org.joda.time.Duration.parse(Duration.java:59) 

Répondre

4

Dans ce cas, il devrait être un Period pas Duration comme il est d'un mois à long alors essayez ceci:

Period period = Period.parse("P1M"); 

en effet, un Duration doit être exprimée en une quantité exacte de millisecondes et comme un mois ne peut pas être exprimé exactement en millisecondes car il change d'un mois à l'autre, il ne peut pas être un Duration.

Plus de détails sur Period et Durationhere

1

Le Duration est utilisé pour représenter quantité en fonction du temps de temps, comme secondes et nanosecondes.

Pour représenter la quantité de temps basée sur les données, vous devez envisager d'utiliser Period.