Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Дата в нужном формате


Автор: rcdimon 12.2.2006, 09:53
Здравствуйте.

Мне нужно узнать день недели, а я не знаю как smile

Код

my ($sec, $min, $hour, $mday, $mon, $year_off, $wsday, $yday, $isdst)=localtime;


вот тут нигде нет smile

А мне в конечном итоге надо сформировать дату такого формата

Sun, 12 Feb 2006 11:14:25 +0500

Автор: arto 12.2.2006, 12:12
perldoc -f localtime
perldoc POSIX

Автор: rcdimon 12.2.2006, 18:48
smile
Добавлено @ 18:52
Хотя в общем уже не надо. Спасибо smile Уже придумай что делать с локалтаймом.

А вообще никак не заставить перл выдавать дату именно в этом формате?

Автор: korob2001 12.2.2006, 21:32
Код

#!/usr/bin/perl -w
use strict;
print scalar localtime;

А вообще укажи в каком формате у тебя есть дата, т.е. из которого ты хочешь перевести в другой формат. Модулей на CPAN немеренно для работы с датами. Можно сделать конечно и в ручную, а можно заюзать POSIX, Time::Local, Date::Manip, Date::Calc

Автор: nitr 13.2.2006, 04:03
Ну если хочеться использовать только стандарт (иногда надо, если шелл чужой ;) )...
Код

#!/usr/bin/perl
my $year = 1900+(localtime(time))[5];
my $day = (localtime(time))[3];
my $wday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[(localtime(time))[6]];
my $month = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[(localtime(time))[4]];
my $hour = (localtime(time))[2];
$hour = "0$hour" if $hour =~ /^\d$/;
my $min = (localtime(time))[1];
$min = "0$min" if $min =~ /^\d$/;
my $sec = (localtime(time))[0];
$sec = "0$sec" if $sec =~ /^\d$/;
my $diff1 = abs((localtime(time))[2]-(gmtime(time))[2]);
$diff1 = "0$diff1" if $diff1 =~ /^\d$/;
my $diff2 = abs((localtime(time))[1]-(gmtime(time))[1]);
$diff2 = "0$diff2" if $diff2 =~ /^\d$/;
my $diff = "+$diff1$diff2"  if (localtime(time))[2] >= (gmtime(time))[2];
$diff = "-$diff1$diff2" unless (localtime(time))[2] >= (gmtime(time))[2];
print "$wday, $day $month $year $hour:$min:$sec $diff";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)