I'd be happy to see a pull request with tests that allowed the period formatter builder to be extended to support an option for a single sign up front. However, it does get complicated as each field is independently signed as you say, thus calculating what a prefix sign might be is more complicated.
Stephen On 19 June 2013 16:00, Gemmill, Craig <craig.gemm...@tridium.com> wrote: > Thanks for the quick reply! > > I don't have a copy of the ISO8601 standard, unfortunately it costs $134. > But the W3C XML Schema datatype xs:duration uses the same format (see > http://www.w3.org/TR/xmlschema-2/#duration), and they indicate that the sign > should lead the entire string. Is the XML Schema datatype just a subset of > the ISO8601 format that specifies a particular placement of the sign? > > Is there a way I could build my own PeriodFormatterBuilder to define this? I > have been poking around with it, but I don't see an API for controlling where > the minus sign is placed. One of the threads from a few years ago > (http://sourceforge.net/mailarchive/message.php?msg_id=28027662) seems to > indicate that the fields are independently signed, so I'm not sure how easy > it would be to aggregate this into an overall sign - you'd potentially have > to sum the fields to determine the overall sign. > > Thanks for any ideas! > -Craig > > > -----Original Message----- > From: Stephen Colebourne [mailto:scolebou...@joda.org] > Sent: Wednesday, June 19, 2013 10:48 AM > To: Discussion of the Joda project > Subject: Re: [Joda-interest] How to handle Period with negative length? > > Joda-Time doe snot support this XML encoding with a leading sign. Its not a > standard ISO-8601 format AFAICT. Instead, we use P-120D. > Stephen > > On 19 June 2013 15:31, Gemmill, Craig <craig.gemm...@tridium.com> wrote: >> 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 >> > > ------------------------------------------------------------------------------ > 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 > > ------------------------------------------------------------------------------ > 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 ------------------------------------------------------------------------------ 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