Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

дата/время в Perl

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
eug



Зарегистрирован: 15.01.2006
Сообщения: 2

СообщениеДобавлено: Вс Янв 15 2006 13:22    Заголовок сообщения: дата/время в Perl Ответить с цитатой

подскажите пожалуйста, добрые люди, как в перле получить данные по текущей дате и времени (библиотека, функция?). заранее премного благодарен...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
September



Зарегистрирован: 14.11.2004
Сообщения: 109
Откуда: Saint-Petersburg

СообщениеДобавлено: Вс Янв 15 2006 13:28    Заголовок сообщения: Ответить с цитатой

3.1. Определение текущей даты


Проблема
Требуется определить год, месяц и число для текущей даты.


Решение
Воспользуйтесь функцией localtime. Без аргументов она возвращает текущую дату и время. Вы можете вызвать localtime и извлечь необходимую информацию из полученного списка:

($DAY, $MONTH, $YEAR) = (localtime)[3,4,5];

Модуль Timc::localtimc переопределяет localtime так, чтобы функция возвращала объект Time::tm:

use Time::localtime;
$tm = localtime;
($DAY, $MONTH, $YEAR) = ($tm->mday, $tm->mon, $tm->year);


Комментарий
Вывод текущей даты в формате ГПТ-ММ-ДД с использованием стандартной функции localtime выполняется следующим образом:

($day, $month, $year) = (localtime)[3,4,5];
printf("The current date is %04d %02d %02\n", $year+1900, $month+1, $day):
The current date is 1999 04 28

Нужные ноля из списка, возвращаемого localtime, извлекаются с помощью среза. Запись могла выглядеть иначе:

($day, $month, $year) = (localtime)[3..5];

А вот как текущая дата выводится в (формате ГПТ-ММ-ДД (рекомендованном стандартом ISO 8601) с использованием Time::localtime:

use Time: : localtline;
$tm = localtime;
printf("The current date is %04d-%02d-%02\n", $tm->year+1900, ($tm->mon)+1, $tm->mday);
The current date is 1999-04-28

В короткой программе объектный интерфейс выглядит неуместно. Однако при большом объеме вычислений с отдельными компонентами даты обращения по имени заметно упрощают чтение программы.

То же самое можно сделать и хитроумным способом, не требующим создания временных переменных:

printf("The current date is %04d-%02d-%02\n",
sub {($_[5]+1900, $_[4]+1, $_[3])}->(localtime));

Кроме того, в модуле POSIX имеется функция strftime, упоминаемая в рецепте 3.8:

use POSIX qw(strftime):
print strftime "%Y-%m-%d\n", localtime:

Функция gmtime работает аналогично localtime, но возвращает время но Гринвичу, а не для местного часового пояса.


А если не маяться дурью, то
http://www.google.ru
key: Perl дата время получить
Cool)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение AIM Address Yahoo Messenger MSN Messenger
eug



Зарегистрирован: 15.01.2006
Сообщения: 2

СообщениеДобавлено: Вс Янв 15 2006 14:20    Заголовок сообщения: eug Ответить с цитатой

огромное спасибо за исчерпывающий ответ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aragaer



Зарегистрирован: 28.03.2005
Сообщения: 164

СообщениеДобавлено: Пн Янв 16 2006 02:39    Заголовок сообщения: Ответить с цитатой

Вообще, просто вызов localtime в скалярном контексте.
_________________
Open your eyes.
And Awaken.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...