Как сохранить дату и время в формате UTC в базе данных, используя EclipseLink и Joda-Time?

Я возился со следующим EclipseLinkJoda времени Конвертер долго хранить дату-время вуниверсальное глобальное время в базу данных MySQL без успеха вообще.

import java.util.Date;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.converters.Converter;
import org.eclipse.persistence.sessions.Session;
import org.joda.time.DateTime;

public final class JodaDateTimeConverter implements Converter {

    private static final long serialVersionUID = 1L;

    @Override
    public Object convertObjectValueToDataValue(Object objectValue, Session session) {
        //Code to convert org.joda.time.DateTime to java.util.Date in UTC.
        //Currently dealing with the following line
        //that always uses the system local time zone which is incorrect.
        //It should be in the UTC zone.
        return objectValue instanceof DateTime ? ((DateTime) objectValue).toDate() : null;
    }

    @Override
    public Object convertDataValueToObjectValue(Object dataValue, Session session) {
        return dataValue instanceof Date ? new DateTime((Date) dataValue) : null;
    }

    @Override
    public boolean isMutable() {
        return true;
    }

    @Override
    public void initialize(DatabaseMapping databaseMapping, Session session) {
        databaseMapping.getField().setType(java.util.Date.class);
    }
}

objectValue параметрconvertObjectValueToDataValue() метод являетсяinstanceOf DateTime который уже в соответствии с зоной UTC. Поэтому я избежал.withZone(DateTimeZone.UTC).

На клиенте уже есть отдельный конвертер, который преобразует строковое представление даты-времени вorg.joda.time.DateTime в UTC перед отправкой в ​​EJBs).

это((DateTime) objectValue).toDate() в ответном заявленииconvertObjectValueToDataValue() Метод всегда принимает системный часовой пояс, который должен быть в зоне UTC.

В любом случае дата-время должно быть вставлено в MySQL в соответствии с зоной UTC.

Лучшее / идеальное решение было бы, если бы оно обрабатывало дату-время Joda, подобноезимовать

РЕДАКТИРОВАТЬ:

Свойство типаorg.joda.time.DateTime В качестве примера обозначен класс модели следующим образом.

@Column(name = "discount_start_date", columnDefinition = "DATETIME")
@Converter(name = "dateTimeConverter", converterClass = JodaDateTimeConverter.class)
@Convert("dateTimeConverter")
private DateTime discountStartDate; //Getter and setter.    

Ответы на вопрос(2)

Ваш ответ на вопрос