Можно ли изменить базовое эталонное время в миллисекундах с 1970 на 2008 год в Java (например, JSR-310)

StackOverflow https://stackoverflow.com/questions/1471805

Вопрос

Я хочу иметь возможность изменить базовую ссылку на миллисекунд с 1970 по 2008 год в Java, чтобы я мог сохранить пространство в базе данных и уникальных идентификатора.

Предпочтительно с Joda-Time.

Предстоящий jsr-310 в предполагаемой версии Java 7 реализует это.

в Дискретная временная шкала В разделе этой ссылки указано, что отсчет миллисекунд изменился с 1970 по 2008 год.

http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html


Единственный другой вариант, который я вижу, - это математически реализовать его каждый раз, когда мне нужно искать запись.

Например.

DateTime dt = new DateTime();  
long now = dt.getMillis();

DateTime dt2 = new DateTime(2008, 1, 1, 0, 0, 0, 0);  
long then = dt2.getMillis();

long smallerDate = now - then;

Меньшая дата будет храниться в БД.

-- Редактировать --

Итак, я неправильно понял JSR-310, и это невозможно.

Существуют лучшие способы сэкономить место, а затем головная боль в обработке тысяч запросов для расчета длинных.

Я хотел записывать долгосрочные даты, потому что я никогда не узнаю, куда я буду перемещать ДБ, возможно, mysql => Oracle.

Поэтому мне не нужны были временные метки, мне просто нужны были BigInts.

Это было полезно?

Решение

Нет, вы не можете, и было бы плохой идеей, если бы вы могли.Каждая временная метка в вашей базе данных будет использовать одно и то же пространство, независимо от того, насколько велико это число.(Предполагая, что вы сохраняете число как число, а не как строку или что-то в этом роде.)

Теперь, если вы Действительно хотите этого, вам придется написать это самостоятельно.Т.е.вычтите время из ваших временных меток перед помещением их в базу данных и добавьте время к временным меткам, когда вы получите их обратно.Но это вызывает проблемы с обслуживанием.(На самом деле, использование временных меток вместо собственного типа данных DATETIME базы данных приводит к проблемам.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top