package date2str;
require Exporter;
@ISA = ("Exporter");
@EXPORT = qw(date2str);
$ENV{'TZ'} = 'Asia/Tokyo';
sub date2str{
my $format = shift;
my $time = shift;
#$format = "%m/%e/%y %H:%M:%S" unless $format;
$format = "%D %T" unless $format;
$time = time unless $time;
my @time = localtime($time);
$week = $time[6];
$month = $time[4];
$meta{'a'} = (qw(Sun Mon Tue Wed Thu Fri Sat))[$week];
$meta{'A'} = (qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday))[$week];
$meta{'b'} = (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[$month];
$meta{'B'} = qw();
$meta{'d'} = $time[3];
$meta{'D'} = "%m/%e/%y";
$meta{'e'} = $time[3] < 10 ? "0" . $time[3] : $time[3];
$meta{'H'} = $time[2] < 10 ? "0" . $time[2] : $time[2];
$meta{'I'} = $time[2] > 12 ? $time[2] - 12 : $time[2];
$meta{'I'} = $meta{'I'}<10 ? "0" . $meta{'I'}:$meta{'I'};
$meta{'j'} = $time[7];
$meta{'m'} = $time[4] < 9 ? "0" . ($time[4]+1): $time[4]+1;
$meta{'M'} = $time[1] < 10 ? "0" . $time[1] : $time[1];
$meta{'p'} = $time[2] < 12 ? "AM" : "PM";
$meta{'r'} = "%I:%M:%S %p";
$meta{'S'} = $time[0] < 10 ? "0" . $time[0] : $time[0];
$meta{'T'} = "%H:%M:%S";
$meta{'U'} = int($time[7] / 7);
$meta{'w'} = $time[3];
$meta{'y'} = $time[5];
$meta{'Y'} = 1900 + $time[5];
$meta{'Z'} = 'JST';
1 while ($format =~ s/\%(\w)/$meta{$1}/);
$format;
}