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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL timestamp и JAVA 
:(
    Опции темы
sergejzr
Дата 13.2.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Вот читаю из базы время, преобразую в дату. Допустим из базы пришло число 1139401723 должно преобразоваться в 8.2.2006 15:28

Код

Timestamp last_post=r.getTimestamp("last_post");
SimpleDateFormat df = new SimpleDateFormat( "dd.MM.yyyy HH:mm" );
System.out.println(df.format(this.last_post));

Этот код даёт 09.04.2014 17:23

Делел также с Date
Код

Date last_post=r.getDate("last_post");
SimpleDateFormat df = new SimpleDateFormat( "dd.MM.yyyy HH:mm" );
System.out.println(df.format(this.last_post));


А это вообще выдаёт: 19.01.1144 00:00

Думаю ихфы достатчно для профи, чтобы определить, как мне надо выкрутится тут smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
onsh76
Дата 13.2.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 20.11.2005
Где: Beautiful BC

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



Цитата(sergej.z @ 13.2.2006, 01:15)
... Допустим из базы пришло число 1139401723 должно преобразоваться в 8.2.2006 15:28

Скорее всего драйвер не тот. Проверь версию базы и драйвера.
При считывании значения ты теряешь наносекунды.
Прилагаю элементарный тест ниже:
Код
public static void main(String[] args) {
        SimpleDateFormat df = new SimpleDateFormat( "dd.MM.yyyy HH:mm" );
        // reference long value for feb.08, 2006 15:28 --> 1139441333373
        java.util.Calendar c = Calendar.getInstance();
        c.set(2006, 1, 8, 15, 28);
        long timeFeb820061528 = c.getTimeInMillis();
        System.out.println("The long value of "  + timeFeb820061528 +  " represents the date and time: " + df.format(c.getTime()));
        
        // ...before
        long l = 1139401723L;
        Timestamp ts = new Timestamp(l);
        System.out.println("The freaking timestamp instantiated with the long value as 1139401723 is: " + df.format(ts));
        
        // and after...
        long r = 1139401723000L;
        Timestamp rts = new Timestamp(r);
        System.out.println("As long as three dummy zeros are added to represent nanoseconds, the timestamp instantiated with the long value as 1139401723000 is not a freaking anymore: " + df.format(rts));

        
    }


Прилагаю также примечание из javadoc-a по поводу отличия java.util.Date от java.sql.Timestamp:
Цитата
Note: This type is a composite of a java.util.Date and a separate nanoseconds value. Only integral seconds are stored in the java.util.Date component. The fractional seconds - the nanos - are separate. The Timestamp.equals(Object) method never returns true when passed a value of type java.util.Date because the nanos component of a date is unknown. As a result, the Timestamp.equals(Object) method is not symmetric with respect to the java.util.Date.equals(Object) method. Also, the hashcode method uses the underlying java.util.Data implementation and therefore does not include nanos in its computation.

Due to the differences between the Timestamp class and the java.util.Date class mentioned above, it is recommended that code not view Timestamp values generically as an instance of java.util.Date. The inheritance relationship between Timestamp and java.util.Date really denotes implementation inheritance, and not type inheritance.

PM MAIL   Вверх
LSD
Дата 13.2.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(sergej.z @ 13.2.2006, 01:15 Найти цитируемый пост)
Вот читаю из базы время, преобразую в дату. Допустим из базы пришло число 1139401723 должно преобразоваться в 8.2.2006 15:28

Какой тип столбца, и как должны преобразовываться 1139401723 в 8.2.2006 15:28 (меня интересует алгоритм хранения даты).


--------------------
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   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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