Re: Storing GMT dates?

From: Alexander Lamb (dev) ("Alexander)
Date: Tue Feb 26 2008 - 09:41:14 EST

  • Next message: Kevin Menard: "ROP listener semantics"

    But that's what I am doing.

    I did create a Calendar object initialized as a GMT "now". Then I
    simply do a "getTime()" on it.

    Now, when I print the result of the getTime() I get the local time,
    but that's because of the locale. That's why I am suspecting Cayenne
    to printout the Date object and the local being what it is, I end up
    storing a local time. I know the database has no knowledge of time
    zones, and that's why I want to store GMT times (and therefore also
    avoid the daylight saving times passage problems).

    So it summarizes to "how do I tell cayenne to use GMT when generating
    the SQL to insert my Date" (and this, only in some areas). ?

    Alex

    Le 26 févr. 08 à 15:01, Michael Gentry a écrit :

    > Sorry Alexander, I meant to reply to this.
    >
    > Most databases, to my knowledge, do not store dates with a time zone
    > associated with them. I haven't played too much with storing things
    > in GMT or any other specific time zone, but I would imagine that
    > you'll need a helper method to do the time zone translations for you.
    > For example, override the get/set methods in your subclass to convert
    > from/to GMT. (This means you'll have to physically convert the time,
    > not just apply the time zone offset.)
    >
    > Maybe someone else will correct me if I'm wrong on this, but that is
    > the first approach I would try.
    >
    > /dev/mrg
    >
    > On Tue, Feb 26, 2008 at 8:25 AM, Alexander Lamb (dev)
    > <alam..ac.com> wrote:
    >> Maybe I can rephrase the question: does Cayenne do any kind of
    >> transformation when storing Date objects in TIMESTAMP fields?
    >>
    >> If so, how can I control this?
    >>
    >> Thanks,
    >>
    >> Alex
    >>
    >> Le 25 févr. 08 à 16:17, Alexander Lamb a écrit :
    >>
    >>
    >>
    >>> Hello,
    >>>
    >>> Using Cayenne 3.0M3, MySQL 5.
    >>>
    >>> I have a field which is a TIMESTAMP. It maps to a Java.util.Date
    >>> class in Java.
    >>>
    >>> If I do a myObject.setMyTimestamp(new Date()) I will store the local
    >>> date.
    >>>
    >>> I would like to store a GMT date.
    >>>
    >>> I tried doing this:
    >>>
    >>> Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    >>>
    >>> myObject.setMyTimestamp(cal.getTime());
    >>>
    >>> but again, I am back to the local time. Indeed, a trace shows "cal"
    >>> is correctly set at the GMT value, but cal.getTime() is back to the
    >>> local time (or at least the printout is, but it is as if Cayenne
    >>> took the formated value and not the actual date value).
    >>>
    >>> How can I solve this problem?
    >>>
    >>> Thanks,
    >>>
    >>> Alex
    >>> --
    >>> Alexander Lamb
    >>> Founding Associate
    >>> RODANOTECH Sàrl
    >>>
    >>> 4 ch. de la Tour de Champel
    >>> 1206 Geneva
    >>> Switzerland
    >>>
    >>> Tel: 022 347 77 37
    >>> Fax: 022 347 77 38
    >>>
    >>> http://www.rodanotech.ch
    >>>
    >>>
    >>>
    >>
    >>



    This archive was generated by hypermail 2.0.0 : Tue Feb 26 2008 - 09:42:22 EST