package SOAP::DateTime;
use strict;
use Date::Manip;

BEGIN {
	use Exporter ();
	use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
	$VERSION     = 0.02;
	@ISA         = qw (Exporter);
	#Give a hoot don't pollute, do not export more than needed by default
	@EXPORT      = qw (ConvertDate);
	@EXPORT_OK   = qw ();
	%EXPORT_TAGS = ();
}


=head1 NAME

SOAP::DateTime - Support for converting dates to C<xsd:dateTime> format

=head1 SYNOPSIS

  use SOAP::DateTime;
  my $soap_datetime = ConvertDate($arbitrary_date);

=head1 DESCRIPTION

C<SOAP::DateTime> converts dates into the format required by the 
C<xsd:dateTime> type.

=head1 USAGE

See the synopsis for an example. Date parsing is handled with C<Date::Manip>,
so the date format used as input is ridiculously flexible.

=head1 BUGS

None known.

=head1 SUPPORT

Contact the author for support.

=head1 AUTHOR

	Joe McMahon
	CPAN ID: MCMAHON
	mcmahon@ibiblio.org
	http://a.galaxy.far.far.away/modules

=head1 COPYRIGHT

This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the
LICENSE file included with this module.

=head1 SEE ALSO

perl(1), Date::Manip(1).

=head2 ConvertDate($date)

Accepts the date (in any C<Date::Manip>-supported format) and returns a date
in the format I<YYYY>-I<MM>-I<DD>TI<HH>:I<MM>:I<SS>; so, for example, 
December 14 1984 12:14:37 would be 1984-12-14T12:14:37.

=cut

sub ConvertDate {
  my $date = shift;
  die "No date supplied\n" unless $date;
  my $parsed = ParseDate($date);
  die "Unparseable date\n" unless $parsed;
  UnixDate($parsed,"%Y-%m-%dT%H:%M:%S");
}

1; #this line is important and will help the module return a true value
__END__