Time::Piece Changes

1.20
    - Fix for alloca broke Solaris
    - Fixed documentation buggette about strptime
    - Added ->pretty() method for Time::Seconds objects
	- Add %s support to strptime

1.19
    - Fix for alloca broke FreeBSD

1.18
    - Fix for alloca on IRIX

1.17
    - Force all to use internal strptime then everyone gets %z even OSX
      users.
    - Finally figured out the timezone test failures on Win32 and fixed
      them.

1.16
	- Implement %z for the internal implementation of strptime(). 
	  Unfortunately this doesn't get picked up everywhere, so there are no 
	  tests for it (yet - patches welcome).
	- Fix for major bug in add_months() using negative months which were 
	  multiples of 12. Also affected add_years() with negative years.
	- Fix for object creation bug in get_epochs which called new from object 
	  but that wasn't supported in the new() code.
 	- Added docs about the weakness of using epoch seconds internally and
	  suggested alternatives.
	- Removed useless "use UNIVERSAL qw(isa)" line.
	- Fix for installing over core perl version.
	
1.15
    - Skip a test on Win32 that there's just no way of passing
    - Document the above failure

1.14
	- rework add_months() to not rely on strptime being able to parse illegal
	  dates (Gisle Aas).
        - Various win32 TZ fixes from p5p core perl version

1.13
    - More QNX fixes (kraai@ftbfs.org)
    - Restore freebsd copyright on strptime.
    - Added add_months and add_years methods.

1.12
    - QNX fixes
    - Merge with perl core version

1.11
    - Skip %V test on Win32

1.10
    - Number of bug fixes from RT
    - (maintenance by Ricardo SIGNES)
    - avoid warning in _mktime (bug #19677)

1.09
    - (patches from Ricardo SIGNES)
    - Tests largely moved to Test::More (from Test.pm)
    - Time::Piece should now be safely subclassable

1.08
    - A number of fixes for strptime
    - Fixed docs wrt Time::Object references
    - Fixed docs wrt ->month returning short month name
    - Added ->fullmonth and ->fullday to get full day names

1.07
    - Fix for ->week method

1.06
    - Fix for Solaris pre-2.8
    - Compilation checked on:
      sparc solaris 2.7
      sparc solaris 2.8
      i686 linux
      ia64 linux
      pa-risc1.1 hpux 10.20
      pa-risc2.0 hpux 11.00
      alpha dec_osf 4.0  
    - Fixes for Win32 (Randy Kobes)
    
1.05
    - Fix for Solaris (again)

1.04
    - Slight fixes to strptime for Solaris and MacOSX
    - Bug in strptime with daylight savings fixed.

1.03
    - Updated MJD stuff (Tim Jeness)
    - Added compare tests
    - Ported test suite to Test.pm finally

1.01
    - Added cs_sec and cs_mon to Time::Seconds so that
      old Time::Object installs still work (except for add())

