Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TimeStamp 
:(
    Опции темы
ShurikA
Дата 15.12.2005, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Прочёл вот это:
http://forum.vingrad.ru/index.php?showtopi...getdateinstance

но всё таки так и не понял как мне из фаила выташить время его создания в виде TimeStamp (типа в секундах с хачало "веков" smile ).


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.12.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Стандартными средствами можно вытащить только время последней модификации file.lastModified(), тем более если я не путаю то в ext2 нет даты создания файла (пусть меня линуксоиды попрявят если что).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.12.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 15.12.2005, 19:14)
file.lastModified()
тоже нормально. Это даёт именно TimeStamp?

В принсепе цель такая: работаь с фаилами старше чем, скажем, 24 часа.
Видел всякие примеры через Calendar Class. Но чего то они какие то кривые для стой простой процедуры. Содержат кучу всего не нужного.

а, и ещё, текущее время тоже можно вытащить в формате TimeStamp?

P.S. Извиняюсь за слоль элементарные вещи, так как обычно работал в юниксе, а там всё значительно проще...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.12.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



file.lastModified() - дает время в милисекундах от 1 января 1970 года GMT (это long). Для работы с датой ты можешь использовать calendar.setTimeInMillis(file.lastModified()) и дальше уже анализировать дату. Но если у тебя простые задачи по работе с временными интервалами, то можно обойтись и без этого. Например что файл "не старше" 24-х часов можно так: (System.currentTimeMillis() - file.lastModified()) < 24 * 60 * 60 * 1000.

Цитата(ShurikA @ 15.12.2005, 20:22)
и ещё, текущее время тоже можно вытащить в формате TimeStamp?

TimeStamp - это класс для работы с БД, там еще есть наносекунды, но такая точность тебе я думаю не нужна. А стандартным классом для работы с датой-временем является java.util.Date, он хранить время с точностью до миллисекунд.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.12.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 15.12.2005, 19:44)
file.lastModified() - дает время в милисекундах от

Ты уверен что в милисекундах?
Опять же, в обычных операционках (как Юникс) понятие TimeStamp -> секунды от 1 января 1970 года GMT...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.12.2005, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(ShurikA @ 15.12.2005, 20:49)
Ты уверен что в милисекундах?

Абсолютно, почитай.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.12.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



LSD
О!!! Вот это я как раз и искал smile Спасибо.

Кстати, в этом деле есть ещё одна проблемма:
Допустим фаилы находятся на серваке, при этом System.currentTimeMillis() даёт локальное время, если я не ошибаюсь.
А теперь представь себе сервер находящийся на другой стороне земного шара и я к нему подключаюсь через ФТП... smile
Уже не говоря о том что время на локалке может быть выставленно не правильно. smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.12.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Тогда надо как-то синхронизировать время, сам понимаешь если время разошлось неизвестно насколько, то и результат не предсказуем. Кстати Jakarta Commons Net поддерживает Network Time Protocol, так что с его помощью можно синхронизировать время, только установить системное время на чистой Java нельзя.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.12.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 15.12.2005, 20:11)
Тогда надо как-то синхронизировать время, сам понимаешь если время разошлось неизвестно насколько, то и результат не предсказуем. Кстати Jakarta Commons Net поддерживает Network Time Protocol, так что с его помощью можно синхронизировать время, только установить системное время на чистой Java нельзя.

Спасибо, это то что нужно.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 16.12.2005, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 15.12.2005, 19:44)
file.lastModified()

C этим не пройдёт. smile
Так как для чтения фаилов на сервере я пользуюсь FTPFiles[] у этого класса нет такой функции... smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 16.12.2005, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Но есть функция getTimestamp(), ты получаешь java.util.Calendar, из него можно сделать getTimeInMillis() и получишь время в миллисекундах. А можешь и непосредственно им оперировать, смотря что тебе от даты нужно.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 16.12.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 16.12.2005, 11:31)
Но есть функция getTimestamp(), ты получаешь java.util.Calendar, из него можно сделать getTimeInMillis() и получишь время в миллисекундах. А можешь и непосредственно им оперировать, смотря что тебе от даты нужно.

ОК, это я сделал.

Но вот достфть северное время мне не удаётся... Просто не нахожу как.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 16.12.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Это не сложно:
Код
InetAddress serverAddress = InetAddress.getByName("time.windows.com");
NTPUDPClient client = new NTPUDPClient();
TimeInfo timeInfo = client.getTime(serverAddress);
timeInfo.computeDetails();
System.out.println("Offset: " + timeInfo.getOffset());

Offset - это то на сколько отличается время на локальной машине, от времени на сервере. Надо просто прибавить его к System.currentTimeMillis() и получим время на сервере.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 16.12.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(LSD @ 16.12.2005, 16:22)
Это не сложно:
Код
InetAddress serverAddress = InetAddress.getByName("time.windows.com");
NTPUDPClient client = new NTPUDPClient();
TimeInfo timeInfo = client.getTime(serverAddress);
timeInfo.computeDetails();
System.out.println("Offset: " + timeInfo.getOffset());

Offset - это то на сколько отличается время на локальной машине, от времени на сервере. Надо просто прибавить его к System.currentTimeMillis() и получим время на сервере.

В результате я так и сделал, но думал что есть прямой путь.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.