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


Автор: MZ412 12.4.2011, 11:20
Получаю артибуты файла.

my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($file);

Драма в том, что ctime, mtime неправильные.

localtime и gtime всякие дают правильные даные.
Атрибуты файла в системе отображаются правильно.

Может кто сталкивался с такой проблемой?
Подозреваю что дело во временной зоне, которую надо явно указать скрипту...

Автор: arto 12.4.2011, 11:25
что именно неправильно, и на какой системе?

Автор: MZ412 12.4.2011, 11:29
Система freebsd 8.2

Неправильное время. Где то на 15 часов.

Добавлено через 5 минут и 36 секунд
Эх... Разобрался. Результат выдаётся не в мой временной зоне, а в GMT...

Добавлено через 10 минут и 38 секунд
Драма в том, что мне необходимо получить ctime файла в правильной временной зоне.

Автор: arto 12.4.2011, 11:44
1. что такое "правильная временная зона"?
2. localtime не помогает?

Автор: MZ412 12.4.2011, 11:50
При чём тут localtime?

Мне нужно получить ctime или mtime файла и сравнить его с текущим временем. Localtime отаёт правильное значение. Это естественно.
А вот stat возвращает значение на 15 часов меньше.

В контексте "парвильной" временной зоны...
Добавлено @ 11:54
http://forum.vingrad.ru/topic-4873.html

Автор: arto 12.4.2011, 12:11
а как сравниваете с текущим временем?

Автор: MZ412 12.4.2011, 12:18
Пока что всё вручную.

# ls -la /var/log/maillog
-rw-r-----  1 root  wheel  32908 12 апр 13:15 /var/log/maillog
Т.е. лог создан сегодня.

Если перевести в читабельный вид данные от stat каким нибудь конвертером - получаю результат на 15 часов меньше для того же файла.

Автор: arto 12.4.2011, 12:29
каким конвертором?

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