Hi all-

I'm new to using Joda-time, but I have a question about using Period with 
negative times.  According to the XML Schema xs:duration datatype, and as far 
as I can tell, the ISO8601 format, a negative duration would be expressed with 
a leading minus sign.  For example, minus 120 days would be "-P120D".  However, 
I tried a quick 'roundtrip' test using org.joda.time.Period and 
org.joda.time.format.ISOPeriodFormat, and this doesn't seem to work:

import org.joda.time.Period;
import org.joda.time.format.ISOPeriodFormat;

public class PeriodTester
{
  public static void main(String[] args)
  {
    Period p = new Period(-8);
    String s = ISOPeriodFormat.standard().print(p);
    Period p1 = ISOPeriodFormat.standard().parsePeriod(s);
    System.out.println("p:"+p+"; ->s:"+s+"; ->p1:"+p1);
  }
}

I would expect this to output:
p:-PT0.008S; ->s:-PT0.008S; ->p1:-PT0.008S

But instead I get
p:PT-0.008S; ->s:PT-0.008S; ->p1:PT0.008S

So this is not able to survive an encode/decode.  It appears that the encoder 
is not putting the minus sign in the right place, but the decoder is expecting 
a leading sign?

Is there a better way to encode the Period so that it uses a leading minus sign?

Thanks!

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Joda-interest mailing list
Joda-interest@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/joda-interest

Reply via email to