Birthday's Change

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Birthday's Change

rhowell
There's a definite problem with the way the dates are displayed in OFBiz.
If you enter a birthday with your local timezone set to UTC, then change
the timezone to -12, the birthday changes to the previous day. This is
clearly wrong and is really apparent if you have your Server Timezone set
to GB. If the birthday is within BST (April - October) and you are in GMT
(Nov - March) they all appear incorrectly and vice versa.

Ultimately this is caused by line 977 UtilDateTime

f.setTimeZone(tz);

Can anyone think of a legitimate reason why a date would have a timezone
applied? A date is a date. January 1st is January 1st no matter where in
the world you are. I would have thought if you want a date to be timezone
dependent you'd use a Timestamp.

I could patch line 666 of ModelFormField but I think it would be better to
actually change the UtilDateTime method..
--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
Rupert,

A date should not be stored as a date-time, but as a date. This appears
throughout the entire spectrum of apps where dates are intended. Over 600
entity fields are designated as date-time, 18 entity fields are designated
as date and 8 as time.

Regards,

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <[hidden email]>wrote:

> There's a definite problem with the way the dates are displayed in OFBiz.
> If you enter a birthday with your local timezone set to UTC, then change
> the timezone to -12, the birthday changes to the previous day. This is
> clearly wrong and is really apparent if you have your Server Timezone set
> to GB. If the birthday is within BST (April - October) and you are in GMT
> (Nov - March) they all appear incorrectly and vice versa.
>
> Ultimately this is caused by line 977 UtilDateTime
>
> f.setTimeZone(tz);
>
> Can anyone think of a legitimate reason why a date would have a timezone
> applied? A date is a date. January 1st is January 1st no matter where in
> the world you are. I would have thought if you want a date to be timezone
> dependent you'd use a Timestamp.
>
> I could patch line 666 of ModelFormField but I think it would be better to
> actually change the UtilDateTime method..
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
Hmm.

Digging a bit deeper I see that birthday is persisted as a date. So that
shouldn't be creating issues.


Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]>wrote:

> Rupert,
>
> A date should not be stored as a date-time, but as a date. This appears
> throughout the entire spectrum of apps where dates are intended. Over 600
> entity fields are designated as date-time, 18 entity fields are designated
> as date and 8 as time.
>
> Regards,
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <[hidden email]>wrote:
>
>> There's a definite problem with the way the dates are displayed in OFBiz.
>> If you enter a birthday with your local timezone set to UTC, then change
>> the timezone to -12, the birthday changes to the previous day. This is
>> clearly wrong and is really apparent if you have your Server Timezone set
>> to GB. If the birthday is within BST (April - October) and you are in GMT
>> (Nov - March) they all appear incorrectly and vice versa.
>>
>> Ultimately this is caused by line 977 UtilDateTime
>>
>> f.setTimeZone(tz);
>>
>> Can anyone think of a legitimate reason why a date would have a timezone
>> applied? A date is a date. January 1st is January 1st no matter where in
>> the world you are. I would have thought if you want a date to be timezone
>> dependent you'd use a Timestamp.
>>
>> I could patch line 666 of ModelFormField but I think it would be better to
>> actually change the UtilDateTime method..
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
In reply to this post by Pierre Smits
Hi Pierre,

Yes I am aware of that. The 18 date fields are being stored correctly. They
are however being displayed incorrectly because they are having the
Timezone applied on line 977 UtilDateTime. If you carry out the test I
described in the previous email. Birth Date on the person entity is the
most obvious example of this. Set it to August 5th in GMT / BST / European
time. Change the timezone to -12, go back into  update it again and in the
new TZ it says August 4th. The db stores the correct time so its only a
very confusing display issue.



On 1 April 2014 09:00, Pierre Smits <[hidden email]> wrote:

> Rupert,
>
> A date should not be stored as a date-time, but as a date. This appears
> throughout the entire spectrum of apps where dates are intended. Over 600
> entity fields are designated as date-time, 18 entity fields are designated
> as date and 8 as time.
>
> Regards,
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <[hidden email]
> >wrote:
>
> > There's a definite problem with the way the dates are displayed in OFBiz.
> > If you enter a birthday with your local timezone set to UTC, then change
> > the timezone to -12, the birthday changes to the previous day. This is
> > clearly wrong and is really apparent if you have your Server Timezone set
> > to GB. If the birthday is within BST (April - October) and you are in GMT
> > (Nov - March) they all appear incorrectly and vice versa.
> >
> > Ultimately this is caused by line 977 UtilDateTime
> >
> > f.setTimeZone(tz);
> >
> > Can anyone think of a legitimate reason why a date would have a timezone
> > applied? A date is a date. January 1st is January 1st no matter where in
> > the world you are. I would have thought if you want a date to be timezone
> > dependent you'd use a Timestamp.
> >
> > I could patch line 666 of ModelFormField but I think it would be better
> to
> > actually change the UtilDateTime method..
> > --
> > Rupert Howell
> >
> > Provolve Ltd
> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >
> > t: 01730 267868 / m: 079 0968 5308
> > e:  [hidden email]
> > w: http://www.provolve.com
> >
>



--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
Correct date I should say - not time....


On 1 April 2014 09:10, Rupert Howell <[hidden email]> wrote:

> Hi Pierre,
>
> Yes I am aware of that. The 18 date fields are being stored correctly.
> They are however being displayed incorrectly because they are having the
> Timezone applied on line 977 UtilDateTime. If you carry out the test I
> described in the previous email. Birth Date on the person entity is the
> most obvious example of this. Set it to August 5th in GMT / BST / European
> time. Change the timezone to -12, go back into  update it again and in the
> new TZ it says August 4th. The db stores the correct time so its only a
> very confusing display issue.
>
>
>
> On 1 April 2014 09:00, Pierre Smits <[hidden email]> wrote:
>
>> Rupert,
>>
>> A date should not be stored as a date-time, but as a date. This appears
>> throughout the entire spectrum of apps where dates are intended. Over 600
>> entity fields are designated as date-time, 18 entity fields are designated
>> as date and 8 as time.
>>
>> Regards,
>>
>> Pierre Smits
>>
>> *ORRTIZ.COM <http://www.orrtiz.com>*
>> Services & Solutions for Cloud-
>> Based Manufacturing, Professional
>> Services and Retail & Trade
>> http://www.orrtiz.com
>>
>>
>> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <[hidden email]
>> >wrote:
>>
>> > There's a definite problem with the way the dates are displayed in
>> OFBiz.
>> > If you enter a birthday with your local timezone set to UTC, then change
>> > the timezone to -12, the birthday changes to the previous day. This is
>> > clearly wrong and is really apparent if you have your Server Timezone
>> set
>> > to GB. If the birthday is within BST (April - October) and you are in
>> GMT
>> > (Nov - March) they all appear incorrectly and vice versa.
>> >
>> > Ultimately this is caused by line 977 UtilDateTime
>> >
>> > f.setTimeZone(tz);
>> >
>> > Can anyone think of a legitimate reason why a date would have a timezone
>> > applied? A date is a date. January 1st is January 1st no matter where in
>> > the world you are. I would have thought if you want a date to be
>> timezone
>> > dependent you'd use a Timestamp.
>> >
>> > I could patch line 666 of ModelFormField but I think it would be better
>> to
>> > actually change the UtilDateTime method..
>> > --
>> > Rupert Howell
>> >
>> > Provolve Ltd
>> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>> >
>> > t: 01730 267868 / m: 079 0968 5308
>> > e:  [hidden email]
>> > w: http://www.provolve.com
>> >
>>
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>



--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
In reply to this post by Pierre Smits
Rupert,

You are right when you don't want to be to specific. But if you are
specific and precise then a birthday needs to have a time zone associated.

Remember it is not the birthday itself that shifts, but your viewpoint of
it when changing locations (meaning time zones).

Regarding.

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]>wrote:

> Hmm.
>
> Digging a bit deeper I see that birthday is persisted as a date. So that
> shouldn't be creating issues.
>
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]>wrote:
>
>> Rupert,
>>
>> A date should not be stored as a date-time, but as a date. This appears
>> throughout the entire spectrum of apps where dates are intended. Over 600
>> entity fields are designated as date-time, 18 entity fields are designated
>> as date and 8 as time.
>>
>> Regards,
>>
>> Pierre Smits
>>
>> *ORRTIZ.COM <http://www.orrtiz.com>*
>> Services & Solutions for Cloud-
>> Based Manufacturing, Professional
>> Services and Retail & Trade
>> http://www.orrtiz.com
>>
>>
>> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <[hidden email]>wrote:
>>
>>> There's a definite problem with the way the dates are displayed in OFBiz.
>>> If you enter a birthday with your local timezone set to UTC, then change
>>> the timezone to -12, the birthday changes to the previous day. This is
>>> clearly wrong and is really apparent if you have your Server Timezone set
>>> to GB. If the birthday is within BST (April - October) and you are in GMT
>>> (Nov - March) they all appear incorrectly and vice versa.
>>>
>>> Ultimately this is caused by line 977 UtilDateTime
>>>
>>> f.setTimeZone(tz);
>>>
>>> Can anyone think of a legitimate reason why a date would have a timezone
>>> applied? A date is a date. January 1st is January 1st no matter where in
>>> the world you are. I would have thought if you want a date to be timezone
>>> dependent you'd use a Timestamp.
>>>
>>> I could patch line 666 of ModelFormField but I think it would be better
>>> to
>>> actually change the UtilDateTime method..
>>> --
>>> Rupert Howell
>>>
>>> Provolve Ltd
>>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>>
>>> t: 01730 267868 / m: 079 0968 5308
>>> e:  [hidden email]
>>> w: http://www.provolve.com
>>>
>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
In reply to this post by rhowell
Rupert,

That happens when the user shifts time zones while updating date fields.

I guess that is why in legal documents  Date of Birth and Date of Death
always come a registration of a Place of Birth and Place of Death so that
the correct time zone can be associated.

Regards,

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 10:12 AM, Rupert Howell <[hidden email]>wrote:

> Correct date I should say - not time....
>
>
> On 1 April 2014 09:10, Rupert Howell <[hidden email]> wrote:
>
> > Hi Pierre,
> >
> > Yes I am aware of that. The 18 date fields are being stored correctly.
> > They are however being displayed incorrectly because they are having the
> > Timezone applied on line 977 UtilDateTime. If you carry out the test I
> > described in the previous email. Birth Date on the person entity is the
> > most obvious example of this. Set it to August 5th in GMT / BST /
> European
> > time. Change the timezone to -12, go back into  update it again and in
> the
> > new TZ it says August 4th. The db stores the correct time so its only a
> > very confusing display issue.
> >
> >
> >
> > On 1 April 2014 09:00, Pierre Smits <[hidden email]> wrote:
> >
> >> Rupert,
> >>
> >> A date should not be stored as a date-time, but as a date. This appears
> >> throughout the entire spectrum of apps where dates are intended. Over
> 600
> >> entity fields are designated as date-time, 18 entity fields are
> designated
> >> as date and 8 as time.
> >>
> >> Regards,
> >>
> >> Pierre Smits
> >>
> >> *ORRTIZ.COM <http://www.orrtiz.com>*
> >> Services & Solutions for Cloud-
> >> Based Manufacturing, Professional
> >> Services and Retail & Trade
> >> http://www.orrtiz.com
> >>
> >>
> >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> [hidden email]
> >> >wrote:
> >>
> >> > There's a definite problem with the way the dates are displayed in
> >> OFBiz.
> >> > If you enter a birthday with your local timezone set to UTC, then
> change
> >> > the timezone to -12, the birthday changes to the previous day. This is
> >> > clearly wrong and is really apparent if you have your Server Timezone
> >> set
> >> > to GB. If the birthday is within BST (April - October) and you are in
> >> GMT
> >> > (Nov - March) they all appear incorrectly and vice versa.
> >> >
> >> > Ultimately this is caused by line 977 UtilDateTime
> >> >
> >> > f.setTimeZone(tz);
> >> >
> >> > Can anyone think of a legitimate reason why a date would have a
> timezone
> >> > applied? A date is a date. January 1st is January 1st no matter where
> in
> >> > the world you are. I would have thought if you want a date to be
> >> timezone
> >> > dependent you'd use a Timestamp.
> >> >
> >> > I could patch line 666 of ModelFormField but I think it would be
> better
> >> to
> >> > actually change the UtilDateTime method..
> >> > --
> >> > Rupert Howell
> >> >
> >> > Provolve Ltd
> >> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >> >
> >> > t: 01730 267868 / m: 079 0968 5308
> >> > e:  [hidden email]
> >> > w: http://www.provolve.com
> >> >
> >>
> >
> >
> >
> > --
> > Rupert Howell
> >
> > Provolve Ltd
> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >
> > t: 01730 267868 / m: 079 0968 5308
> > e:  [hidden email]
> > w: http://www.provolve.com
> >
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
See section 'Time zones and birthdays' in
http://en.wikipedia.org/wiki/Birthday

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 10:21 AM, Pierre Smits <[hidden email]>wrote:

> Rupert,
>
> That happens when the user shifts time zones while updating date fields.
>
> I guess that is why in legal documents  Date of Birth and Date of Death
> always come a registration of a Place of Birth and Place of Death so that
> the correct time zone can be associated.
>
> Regards,
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 10:12 AM, Rupert Howell <[hidden email]>wrote:
>
>> Correct date I should say - not time....
>>
>>
>> On 1 April 2014 09:10, Rupert Howell <[hidden email]> wrote:
>>
>> > Hi Pierre,
>> >
>> > Yes I am aware of that. The 18 date fields are being stored correctly.
>> > They are however being displayed incorrectly because they are having the
>> > Timezone applied on line 977 UtilDateTime. If you carry out the test I
>> > described in the previous email. Birth Date on the person entity is the
>> > most obvious example of this. Set it to August 5th in GMT / BST /
>> European
>> > time. Change the timezone to -12, go back into  update it again and in
>> the
>> > new TZ it says August 4th. The db stores the correct time so its only a
>> > very confusing display issue.
>> >
>> >
>> >
>> > On 1 April 2014 09:00, Pierre Smits <[hidden email]> wrote:
>> >
>> >> Rupert,
>> >>
>> >> A date should not be stored as a date-time, but as a date. This appears
>> >> throughout the entire spectrum of apps where dates are intended. Over
>> 600
>> >> entity fields are designated as date-time, 18 entity fields are
>> designated
>> >> as date and 8 as time.
>> >>
>> >> Regards,
>> >>
>> >> Pierre Smits
>> >>
>> >> *ORRTIZ.COM <http://www.orrtiz.com>*
>> >> Services & Solutions for Cloud-
>> >> Based Manufacturing, Professional
>> >> Services and Retail & Trade
>> >> http://www.orrtiz.com
>> >>
>> >>
>> >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
>> [hidden email]
>> >> >wrote:
>> >>
>> >> > There's a definite problem with the way the dates are displayed in
>> >> OFBiz.
>> >> > If you enter a birthday with your local timezone set to UTC, then
>> change
>> >> > the timezone to -12, the birthday changes to the previous day. This
>> is
>> >> > clearly wrong and is really apparent if you have your Server Timezone
>> >> set
>> >> > to GB. If the birthday is within BST (April - October) and you are in
>> >> GMT
>> >> > (Nov - March) they all appear incorrectly and vice versa.
>> >> >
>> >> > Ultimately this is caused by line 977 UtilDateTime
>> >> >
>> >> > f.setTimeZone(tz);
>> >> >
>> >> > Can anyone think of a legitimate reason why a date would have a
>> timezone
>> >> > applied? A date is a date. January 1st is January 1st no matter
>> where in
>> >> > the world you are. I would have thought if you want a date to be
>> >> timezone
>> >> > dependent you'd use a Timestamp.
>> >> >
>> >> > I could patch line 666 of ModelFormField but I think it would be
>> better
>> >> to
>> >> > actually change the UtilDateTime method..
>> >> > --
>> >> > Rupert Howell
>> >> >
>> >> > Provolve Ltd
>> >> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
>> UK
>> >> >
>> >> > t: 01730 267868 / m: 079 0968 5308
>> >> > e:  [hidden email]
>> >> > w: http://www.provolve.com
>> >> >
>> >>
>> >
>> >
>> >
>> > --
>> > Rupert Howell
>> >
>> > Provolve Ltd
>> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>> >
>> > t: 01730 267868 / m: 079 0968 5308
>> > e:  [hidden email]
>> > w: http://www.provolve.com
>> >
>>
>>
>>
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Adrian Crum-3
In reply to this post by rhowell
The date is stored as a java.sql.Timestamp - which is referenced to  
UTC. The UTC-referenced date is converted to the user's time zone  
during display. This is the intended behavior.

-Adrian


Quoting Rupert Howell <[hidden email]>:

> There's a definite problem with the way the dates are displayed in OFBiz.
> If you enter a birthday with your local timezone set to UTC, then change
> the timezone to -12, the birthday changes to the previous day. This is
> clearly wrong and is really apparent if you have your Server Timezone set
> to GB. If the birthday is within BST (April - October) and you are in GMT
> (Nov - March) they all appear incorrectly and vice versa.
>
> Ultimately this is caused by line 977 UtilDateTime
>
> f.setTimeZone(tz);
>
> Can anyone think of a legitimate reason why a date would have a timezone
> applied? A date is a date. January 1st is January 1st no matter where in
> the world you are. I would have thought if you want a date to be timezone
> dependent you'd use a Timestamp.
>
> I could patch line 666 of ModelFormField but I think it would be better to
> actually change the UtilDateTime method..
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>



Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
In reply to this post by Pierre Smits
My birth date is my birth date wherever I am in the world - it is not
relative. My passport doesn't change as I travel through Timezones. Yet if
I view my passport information is OFBiz it will change,
Dates need to be viewed as dates and be totally independent of timezones. I
cannot think of a single reason why you would want to be specific with
dates. If you do want to be specific and have them change as to where you
view them from - you'd just use Timestamps.


On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:

> Rupert,
>
> You are right when you don't want to be to specific. But if you are
> specific and precise then a birthday needs to have a time zone associated.
>
> Remember it is not the birthday itself that shifts, but your viewpoint of
> it when changing locations (meaning time zones).
>
> Regarding.
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
> >wrote:
>
> > Hmm.
> >
> > Digging a bit deeper I see that birthday is persisted as a date. So that
> > shouldn't be creating issues.
> >
> >
> > Pierre Smits
> >
> > *ORRTIZ.COM <http://www.orrtiz.com>*
> > Services & Solutions for Cloud-
> > Based Manufacturing, Professional
> > Services and Retail & Trade
> > http://www.orrtiz.com
> >
> >
> > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
> >wrote:
> >
> >> Rupert,
> >>
> >> A date should not be stored as a date-time, but as a date. This appears
> >> throughout the entire spectrum of apps where dates are intended. Over
> 600
> >> entity fields are designated as date-time, 18 entity fields are
> designated
> >> as date and 8 as time.
> >>
> >> Regards,
> >>
> >> Pierre Smits
> >>
> >> *ORRTIZ.COM <http://www.orrtiz.com>*
> >> Services & Solutions for Cloud-
> >> Based Manufacturing, Professional
> >> Services and Retail & Trade
> >> http://www.orrtiz.com
> >>
> >>
> >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> [hidden email]>wrote:
> >>
> >>> There's a definite problem with the way the dates are displayed in
> OFBiz.
> >>> If you enter a birthday with your local timezone set to UTC, then
> change
> >>> the timezone to -12, the birthday changes to the previous day. This is
> >>> clearly wrong and is really apparent if you have your Server Timezone
> set
> >>> to GB. If the birthday is within BST (April - October) and you are in
> GMT
> >>> (Nov - March) they all appear incorrectly and vice versa.
> >>>
> >>> Ultimately this is caused by line 977 UtilDateTime
> >>>
> >>> f.setTimeZone(tz);
> >>>
> >>> Can anyone think of a legitimate reason why a date would have a
> timezone
> >>> applied? A date is a date. January 1st is January 1st no matter where
> in
> >>> the world you are. I would have thought if you want a date to be
> timezone
> >>> dependent you'd use a Timestamp.
> >>>
> >>> I could patch line 666 of ModelFormField but I think it would be better
> >>> to
> >>> actually change the UtilDateTime method..
> >>> --
> >>> Rupert Howell
> >>>
> >>> Provolve Ltd
> >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >>>
> >>> t: 01730 267868 / m: 079 0968 5308
> >>> e:  [hidden email]
> >>> w: http://www.provolve.com
> >>>
> >>
> >>
> >
>



--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
In reply to this post by Adrian Crum-3
This behavior is clearly wrong. A 1 hour change in a timezone and people's
birthdays are wrong!
Postgres is storing the date fields as date fields. It is OFBiz that is
applying the LOCAL timezone information to the date on line 977 of
UtilDateTime.


On 1 April 2014 09:27, <[hidden email]> wrote:

> The date is stored as a java.sql.Timestamp - which is referenced to UTC.
> The UTC-referenced date is converted to the user's time zone during
> display. This is the intended behavior.
>
> -Adrian
>
>
> Quoting Rupert Howell <[hidden email]>:
>
>  There's a definite problem with the way the dates are displayed in OFBiz.
>> If you enter a birthday with your local timezone set to UTC, then change
>> the timezone to -12, the birthday changes to the previous day. This is
>> clearly wrong and is really apparent if you have your Server Timezone set
>> to GB. If the birthday is within BST (April - October) and you are in GMT
>> (Nov - March) they all appear incorrectly and vice versa.
>>
>> Ultimately this is caused by line 977 UtilDateTime
>>
>> f.setTimeZone(tz);
>>
>> Can anyone think of a legitimate reason why a date would have a timezone
>> applied? A date is a date. January 1st is January 1st no matter where in
>> the world you are. I would have thought if you want a date to be timezone
>> dependent you'd use a Timestamp.
>>
>> I could patch line 666 of ModelFormField but I think it would be better to
>> actually change the UtilDateTime method..
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>>
>
>
>


--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

gareth_carter
In reply to this post by rhowell
Hi all

Me and Rupert have been looking at this as we've had this issue for a while with specifically the Birth Date field - but any date only fields will have this issue.

The birth date field is date only in ofbiz and in the database
java.sql.Date is returned from jdbc drivers when the field is SQL date, the date will be set but the time will always be 00:00:00. The java.sql.Date is only there to represent date only component of java,util.Date (java.sql.Date overrides toString method to return only the date)
Because java.sql.Date extends java.util.Date and can be used in DateFormat class, applying a timezone with a negative offset will shift the day to the previous day because time is ALWAYS set to 00:00:00

This also occurs in freemarker if you convert a java.sql.Date to a string using syntax such as ${date?string} where date is a java.sql.Date object. I have created a fix in my fork at https://github.com/gareth-carter/freemarker

Gareth Carter

Software Development Analyst

Stannah Management Services Ltd

IT

Ext:

7036

Tel:

01264 364311

Fax:



Please consider the environment before printing this email.






From:        Rupert Howell <[hidden email]>
To:        "[hidden email]" <[hidden email]>
Date:        01/04/2014 09:27
Subject:        Re: Birthday's Change




My birth date is my birth date wherever I am in the world - it is not
relative. My passport doesn't change as I travel through Timezones. Yet if
I view my passport information is OFBiz it will change,
Dates need to be viewed as dates and be totally independent of timezones. I
cannot think of a single reason why you would want to be specific with
dates. If you do want to be specific and have them change as to where you
view them from - you'd just use Timestamps.


On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:

> Rupert,
>
> You are right when you don't want to be to specific. But if you are
> specific and precise then a birthday needs to have a time zone associated.
>
> Remember it is not the birthday itself that shifts, but your viewpoint of
> it when changing locations (meaning time zones).
>
> Regarding.
>
> Pierre Smits
>
> *ORRTIZ.COM <
http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
>
http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
> >wrote:
>
> > Hmm.
> >
> > Digging a bit deeper I see that birthday is persisted as a date. So that
> > shouldn't be creating issues.
> >
> >
> > Pierre Smits
> >
> > *ORRTIZ.COM <
http://www.orrtiz.com>*
> > Services & Solutions for Cloud-
> > Based Manufacturing, Professional
> > Services and Retail & Trade
> >
http://www.orrtiz.com
> >
> >
> > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
> >wrote:
> >
> >> Rupert,
> >>
> >> A date should not be stored as a date-time, but as a date. This appears
> >> throughout the entire spectrum of apps where dates are intended. Over
> 600
> >> entity fields are designated as date-time, 18 entity fields are
> designated
> >> as date and 8 as time.
> >>
> >> Regards,
> >>
> >> Pierre Smits
> >>
> >> *ORRTIZ.COM <
http://www.orrtiz.com>*
> >> Services & Solutions for Cloud-
> >> Based Manufacturing, Professional
> >> Services and Retail & Trade
> >>
http://www.orrtiz.com
> >>
> >>
> >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> [hidden email]>wrote:
> >>
> >>> There's a definite problem with the way the dates are displayed in
> OFBiz.
> >>> If you enter a birthday with your local timezone set to UTC, then
> change
> >>> the timezone to -12, the birthday changes to the previous day. This is
> >>> clearly wrong and is really apparent if you have your Server Timezone
> set
> >>> to GB. If the birthday is within BST (April - October) and you are in
> GMT
> >>> (Nov - March) they all appear incorrectly and vice versa.
> >>>
> >>> Ultimately this is caused by line 977 UtilDateTime
> >>>
> >>> f.setTimeZone(tz);
> >>>
> >>> Can anyone think of a legitimate reason why a date would have a
> timezone
> >>> applied? A date is a date. January 1st is January 1st no matter where
> in
> >>> the world you are. I would have thought if you want a date to be
> timezone
> >>> dependent you'd use a Timestamp.
> >>>
> >>> I could patch line 666 of ModelFormField but I think it would be better
> >>> to
> >>> actually change the UtilDateTime method..
> >>> --
> >>> Rupert Howell
> >>>
> >>> Provolve Ltd
> >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >>>
> >>> t: 01730 267868 / m: 079 0968 5308
> >>> e:  [hidden email]
> >>> w:
http://www.provolve.com
> >>>
> >>
> >>
> >
>



--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w:
http://www.provolve.com



This email is intended only for the above addressee. It may contain privileged information. If you are not the addressee you must not copy, distribute, disclose or use any of the information in it. If you have received it in error, please delete it and notify the sender.

Stannah Lift Holdings Ltd registered No. 686996, Stannah Management Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.

All registered offices at Watt Close, East Portway, Andover, Hampshire, SP10 3SD, England.

All Registered in England and Wales.
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
In reply to this post by Adrian Crum-3
Adrian - this is definitely incorrect, the Birth Date field is stored as a
date field in Postgres so when OFbiz is converting the date to apply the
user's timezone it is taking the time as 00:00:0000 hence drastic changes
over a 1 hour time change. I could accept what you are saying if the
birthdate was a java.sql.Timestamp and if it was the time would HAVE to be
set to 12:00 (mid-day) UTC but it isn't.
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Adrian Crum-3
In reply to this post by gareth_carter
Thank you Gareth - that is helpful. I can reproduce the date change  
using UTC - so there must be another problem here (since UTC has no  
offset).

-Adrian


Quoting [hidden email]:

> Hi all
>
> Me and Rupert have been looking at this as we've had this issue for a
> while with specifically the Birth Date field - but any date only fields
> will have this issue.
>
> The birth date field is date only in ofbiz and in the database
> java.sql.Date is returned from jdbc drivers when the field is SQL date,
> the date will be set but the time will always be 00:00:00. The
> java.sql.Date is only there to represent date only component of
> java,util.Date (java.sql.Date overrides toString method to return only the
> date)
> Because java.sql.Date extends java.util.Date and can be used in DateFormat
> class, applying a timezone with a negative offset will shift the day to
> the previous day because time is ALWAYS set to 00:00:00
>
> This also occurs in freemarker if you convert a java.sql.Date to a string
> using syntax such as ${date?string} where date is a java.sql.Date object.
> I have created a fix in my fork at
> https://github.com/gareth-carter/freemarker
>
>
>
> Gareth Carter
> Software Development Analyst
> Stannah Management Services Ltd
> IT
>
> Ext: 7036
> Tel: 01264 364311
> Fax:
>
>
>
>
> Please consider the environment before printing this email.
>
>
>
> From:   Rupert Howell <[hidden email]>
> To:     "[hidden email]" <[hidden email]>
> Date:   01/04/2014 09:27
> Subject:        Re: Birthday's Change
>
>
>
> My birth date is my birth date wherever I am in the world - it is not
> relative. My passport doesn't change as I travel through Timezones. Yet if
> I view my passport information is OFBiz it will change,
> Dates need to be viewed as dates and be totally independent of timezones.
> I
> cannot think of a single reason why you would want to be specific with
> dates. If you do want to be specific and have them change as to where you
> view them from - you'd just use Timestamps.
>
>
> On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
>
>> Rupert,
>>
>> You are right when you don't want to be to specific. But if you are
>> specific and precise then a birthday needs to have a time zone
> associated.
>>
>> Remember it is not the birthday itself that shifts, but your viewpoint
> of
>> it when changing locations (meaning time zones).
>>
>> Regarding.
>>
>> Pierre Smits
>>
>> *ORRTIZ.COM <http://www.orrtiz.com>*
>> Services & Solutions for Cloud-
>> Based Manufacturing, Professional
>> Services and Retail & Trade
>> http://www.orrtiz.com
>>
>>
>> On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
>> >wrote:
>>
>> > Hmm.
>> >
>> > Digging a bit deeper I see that birthday is persisted as a date. So
> that
>> > shouldn't be creating issues.
>> >
>> >
>> > Pierre Smits
>> >
>> > *ORRTIZ.COM <http://www.orrtiz.com>*
>> > Services & Solutions for Cloud-
>> > Based Manufacturing, Professional
>> > Services and Retail & Trade
>> > http://www.orrtiz.com
>> >
>> >
>> > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
>> >wrote:
>> >
>> >> Rupert,
>> >>
>> >> A date should not be stored as a date-time, but as a date. This
> appears
>> >> throughout the entire spectrum of apps where dates are intended. Over
>> 600
>> >> entity fields are designated as date-time, 18 entity fields are
>> designated
>> >> as date and 8 as time.
>> >>
>> >> Regards,
>> >>
>> >> Pierre Smits
>> >>
>> >> *ORRTIZ.COM <http://www.orrtiz.com>*
>> >> Services & Solutions for Cloud-
>> >> Based Manufacturing, Professional
>> >> Services and Retail & Trade
>> >> http://www.orrtiz.com
>> >>
>> >>
>> >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
>> [hidden email]>wrote:
>> >>
>> >>> There's a definite problem with the way the dates are displayed in
>> OFBiz.
>> >>> If you enter a birthday with your local timezone set to UTC, then
>> change
>> >>> the timezone to -12, the birthday changes to the previous day. This
> is
>> >>> clearly wrong and is really apparent if you have your Server
> Timezone
>> set
>> >>> to GB. If the birthday is within BST (April - October) and you are
> in
>> GMT
>> >>> (Nov - March) they all appear incorrectly and vice versa.
>> >>>
>> >>> Ultimately this is caused by line 977 UtilDateTime
>> >>>
>> >>> f.setTimeZone(tz);
>> >>>
>> >>> Can anyone think of a legitimate reason why a date would have a
>> timezone
>> >>> applied? A date is a date. January 1st is January 1st no matter
> where
>> in
>> >>> the world you are. I would have thought if you want a date to be
>> timezone
>> >>> dependent you'd use a Timestamp.
>> >>>
>> >>> I could patch line 666 of ModelFormField but I think it would be
> better
>> >>> to
>> >>> actually change the UtilDateTime method..
>> >>> --
>> >>> Rupert Howell
>> >>>
>> >>> Provolve Ltd
>> >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
> UK
>> >>>
>> >>> t: 01730 267868 / m: 079 0968 5308
>> >>> e:  [hidden email]
>> >>> w: http://www.provolve.com
>> >>>
>> >>
>> >>
>> >
>>
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>
>
> This email is intended only for the above addressee. It may contain  
> privileged information. If you are not the addressee you must not  
> copy, distribute, disclose or use any of the information in it. If  
> you have received it in error, please delete it and notify the sender.
>
> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management  
> Services Ltd registered No. 2483693, Stannah Lift Services Ltd  
> registered No. 1189799, Stannah Microlifts Ltd registered No.  
> 964804, Stannah Lifts Ltd registered No. 1189836, Stannah Stairlifts  
> Ltd registered No. 1401451.
>
> All registered offices at Watt Close, East Portway, Andover,  
> Hampshire, SP10 3SD, England.
>
> All Registered in England and Wales.
>



Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

rhowell
In reply to this post by gareth_carter
Thanks Gareth that was put much more eloquently.
Adrian / Pierre are you happy there's an issue here and I'll raise a Jira
and submit a patch.

Can we discuss if there's a need for for a new "date-fixed" field type that
never has the timezone applied to the date format on display or whether we
should use the existing date as a container for a specific moment in time
that is completely TZ independent. In my mind the latter is how it should
be since java.util.Date has no TZ information attached to it I cant see how
formatting it with a  timezone is atall beneficial.

Best Regards,


On 1 April 2014 09:45, <[hidden email]> wrote:

> Hi all
>
> Me and Rupert have been looking at this as we've had this issue for a
> while with specifically the Birth Date field - but any date only fields
> will have this issue.
>
> The birth date field is date only in ofbiz and in the database
> java.sql.Date is returned from jdbc drivers when the field is SQL date,
> the date will be set but the time will always be 00:00:00. The
> java.sql.Date is only there to represent date only component of
> java,util.Date (java.sql.Date overrides toString method to return only the
> date)
> Because java.sql.Date extends java.util.Date and can be used in DateFormat
> class, applying a timezone with a negative offset will shift the day to the
> previous day because time is ALWAYS set to 00:00:00
>
> This also occurs in freemarker if you convert a java.sql.Date to a string
> using syntax such as ${date?string} where date is a java.sql.Date object. I
> have created a fix in my fork at
> https://github.com/gareth-carter/freemarker
>
>  *Gareth Carter *
>
> *Software Development Analyst*
>
> *Stannah Management Services Ltd*
>
> *IT*
>
> *Ext:*
>
> 7036
>
> *Tel:*
>
> 01264 364311
>
> *Fax:*
>
>
>
>   Please consider the environment before printing this email.
>
>
>
>
>
> From:        Rupert Howell <[hidden email]>
> To:        "[hidden email]" <[hidden email]>
> Date:        01/04/2014 09:27
> Subject:        Re: Birthday's Change
> ------------------------------
>
>
>
> My birth date is my birth date wherever I am in the world - it is not
> relative. My passport doesn't change as I travel through Timezones. Yet if
> I view my passport information is OFBiz it will change,
> Dates need to be viewed as dates and be totally independent of timezones. I
> cannot think of a single reason why you would want to be specific with
> dates. If you do want to be specific and have them change as to where you
> view them from - you'd just use Timestamps.
>
>
> On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
>
> > Rupert,
> >
> > You are right when you don't want to be to specific. But if you are
> > specific and precise then a birthday needs to have a time zone
> associated.
> >
> > Remember it is not the birthday itself that shifts, but your viewpoint of
> > it when changing locations (meaning time zones).
> >
> > Regarding.
> >
> > Pierre Smits
> >
> > *ORRTIZ.COM <http://www.orrtiz.com>*
> > Services & Solutions for Cloud-
> > Based Manufacturing, Professional
> > Services and Retail & Trade
> > http://www.orrtiz.com
> >
> >
> > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
> > >wrote:
> >
> > > Hmm.
> > >
> > > Digging a bit deeper I see that birthday is persisted as a date. So
> that
> > > shouldn't be creating issues.
> > >
> > >
> > > Pierre Smits
> > >
> > > *ORRTIZ.COM <http://www.orrtiz.com>*
> > > Services & Solutions for Cloud-
> > > Based Manufacturing, Professional
> > > Services and Retail & Trade
> > > http://www.orrtiz.com
> > >
> > >
> > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
> > >wrote:
> > >
> > >> Rupert,
> > >>
> > >> A date should not be stored as a date-time, but as a date. This
> appears
> > >> throughout the entire spectrum of apps where dates are intended. Over
> > 600
> > >> entity fields are designated as date-time, 18 entity fields are
> > designated
> > >> as date and 8 as time.
> > >>
> > >> Regards,
> > >>
> > >> Pierre Smits
> > >>
> > >> *ORRTIZ.COM <http://www.orrtiz.com>*
> > >> Services & Solutions for Cloud-
> > >> Based Manufacturing, Professional
> > >> Services and Retail & Trade
> > >> http://www.orrtiz.com
> > >>
> > >>
> > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> > [hidden email]>wrote:
> > >>
> > >>> There's a definite problem with the way the dates are displayed in
> > OFBiz.
> > >>> If you enter a birthday with your local timezone set to UTC, then
> > change
> > >>> the timezone to -12, the birthday changes to the previous day. This
> is
> > >>> clearly wrong and is really apparent if you have your Server Timezone
> > set
> > >>> to GB. If the birthday is within BST (April - October) and you are in
> > GMT
> > >>> (Nov - March) they all appear incorrectly and vice versa.
> > >>>
> > >>> Ultimately this is caused by line 977 UtilDateTime
> > >>>
> > >>> f.setTimeZone(tz);
> > >>>
> > >>> Can anyone think of a legitimate reason why a date would have a
> > timezone
> > >>> applied? A date is a date. January 1st is January 1st no matter where
> > in
> > >>> the world you are. I would have thought if you want a date to be
> > timezone
> > >>> dependent you'd use a Timestamp.
> > >>>
> > >>> I could patch line 666 of ModelFormField but I think it would be
> better
> > >>> to
> > >>> actually change the UtilDateTime method..
> > >>> --
> > >>> Rupert Howell
> > >>>
> > >>> Provolve Ltd
> > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
> UK
> > >>>
> > >>> t: 01730 267868 / m: 079 0968 5308
> > >>> e:  [hidden email]
> > >>> w: http://www.provolve.com
> > >>>
> > >>
> > >>
> > >
> >
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>
>
>
> This email is intended only for the above addressee. It may contain
> privileged information. If you are not the addressee you must not copy,
> distribute, disclose or use any of the information in it. If you have
> received it in error, please delete it and notify the sender.
>
> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
> Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
> No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
> Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>
> All registered offices at Watt Close, East Portway, Andover, Hampshire,
> SP10 3SD, England.
>
> All Registered in England and Wales.




--
Rupert Howell

Provolve Ltd
Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK

t: 01730 267868 / m: 079 0968 5308
e:  [hidden email]
w: http://www.provolve.com
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Pierre Smits
Rupert,

Please create the JIRA issue. Irrespective of what the users timezone is,
the date must always be stored in accordance with the timezone setting of
the internal company used (with a failover (if not set) to the default of
the tenant, which - if not set - fails over to the default of the OFBiz
setup (from a .properties file). And yes, calculations to/from should
always have 12:00 noon in mind.

Regards,

Pierre Smits

*ORRTIZ.COM <http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 12:10 PM, Rupert Howell <[hidden email]>wrote:

> Thanks Gareth that was put much more eloquently.
> Adrian / Pierre are you happy there's an issue here and I'll raise a Jira
> and submit a patch.
>
> Can we discuss if there's a need for for a new "date-fixed" field type that
> never has the timezone applied to the date format on display or whether we
> should use the existing date as a container for a specific moment in time
> that is completely TZ independent. In my mind the latter is how it should
> be since java.util.Date has no TZ information attached to it I cant see how
> formatting it with a  timezone is atall beneficial.
>
> Best Regards,
>
>
> On 1 April 2014 09:45, <[hidden email]> wrote:
>
> > Hi all
> >
> > Me and Rupert have been looking at this as we've had this issue for a
> > while with specifically the Birth Date field - but any date only fields
> > will have this issue.
> >
> > The birth date field is date only in ofbiz and in the database
> > java.sql.Date is returned from jdbc drivers when the field is SQL date,
> > the date will be set but the time will always be 00:00:00. The
> > java.sql.Date is only there to represent date only component of
> > java,util.Date (java.sql.Date overrides toString method to return only
> the
> > date)
> > Because java.sql.Date extends java.util.Date and can be used in
> DateFormat
> > class, applying a timezone with a negative offset will shift the day to
> the
> > previous day because time is ALWAYS set to 00:00:00
> >
> > This also occurs in freemarker if you convert a java.sql.Date to a string
> > using syntax such as ${date?string} where date is a java.sql.Date
> object. I
> > have created a fix in my fork at
> > https://github.com/gareth-carter/freemarker
> >
> >  *Gareth Carter *
> >
> > *Software Development Analyst*
> >
> > *Stannah Management Services Ltd*
> >
> > *IT*
> >
> > *Ext:*
> >
> > 7036
> >
> > *Tel:*
> >
> > 01264 364311
> >
> > *Fax:*
> >
> >
> >
> >   Please consider the environment before printing this email.
> >
> >
> >
> >
> >
> > From:        Rupert Howell <[hidden email]>
> > To:        "[hidden email]" <[hidden email]>
> > Date:        01/04/2014 09:27
> > Subject:        Re: Birthday's Change
> > ------------------------------
> >
> >
> >
> > My birth date is my birth date wherever I am in the world - it is not
> > relative. My passport doesn't change as I travel through Timezones. Yet
> if
> > I view my passport information is OFBiz it will change,
> > Dates need to be viewed as dates and be totally independent of
> timezones. I
> > cannot think of a single reason why you would want to be specific with
> > dates. If you do want to be specific and have them change as to where you
> > view them from - you'd just use Timestamps.
> >
> >
> > On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
> >
> > > Rupert,
> > >
> > > You are right when you don't want to be to specific. But if you are
> > > specific and precise then a birthday needs to have a time zone
> > associated.
> > >
> > > Remember it is not the birthday itself that shifts, but your viewpoint
> of
> > > it when changing locations (meaning time zones).
> > >
> > > Regarding.
> > >
> > > Pierre Smits
> > >
> > > *ORRTIZ.COM <http://www.orrtiz.com>*
> > > Services & Solutions for Cloud-
> > > Based Manufacturing, Professional
> > > Services and Retail & Trade
> > > http://www.orrtiz.com
> > >
> > >
> > > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
> > > >wrote:
> > >
> > > > Hmm.
> > > >
> > > > Digging a bit deeper I see that birthday is persisted as a date. So
> > that
> > > > shouldn't be creating issues.
> > > >
> > > >
> > > > Pierre Smits
> > > >
> > > > *ORRTIZ.COM <http://www.orrtiz.com>*
> > > > Services & Solutions for Cloud-
> > > > Based Manufacturing, Professional
> > > > Services and Retail & Trade
> > > > http://www.orrtiz.com
> > > >
> > > >
> > > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <
> [hidden email]
> > > >wrote:
> > > >
> > > >> Rupert,
> > > >>
> > > >> A date should not be stored as a date-time, but as a date. This
> > appears
> > > >> throughout the entire spectrum of apps where dates are intended.
> Over
> > > 600
> > > >> entity fields are designated as date-time, 18 entity fields are
> > > designated
> > > >> as date and 8 as time.
> > > >>
> > > >> Regards,
> > > >>
> > > >> Pierre Smits
> > > >>
> > > >> *ORRTIZ.COM <http://www.orrtiz.com>*
> > > >> Services & Solutions for Cloud-
> > > >> Based Manufacturing, Professional
> > > >> Services and Retail & Trade
> > > >> http://www.orrtiz.com
> > > >>
> > > >>
> > > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> > > [hidden email]>wrote:
> > > >>
> > > >>> There's a definite problem with the way the dates are displayed in
> > > OFBiz.
> > > >>> If you enter a birthday with your local timezone set to UTC, then
> > > change
> > > >>> the timezone to -12, the birthday changes to the previous day. This
> > is
> > > >>> clearly wrong and is really apparent if you have your Server
> Timezone
> > > set
> > > >>> to GB. If the birthday is within BST (April - October) and you are
> in
> > > GMT
> > > >>> (Nov - March) they all appear incorrectly and vice versa.
> > > >>>
> > > >>> Ultimately this is caused by line 977 UtilDateTime
> > > >>>
> > > >>> f.setTimeZone(tz);
> > > >>>
> > > >>> Can anyone think of a legitimate reason why a date would have a
> > > timezone
> > > >>> applied? A date is a date. January 1st is January 1st no matter
> where
> > > in
> > > >>> the world you are. I would have thought if you want a date to be
> > > timezone
> > > >>> dependent you'd use a Timestamp.
> > > >>>
> > > >>> I could patch line 666 of ModelFormField but I think it would be
> > better
> > > >>> to
> > > >>> actually change the UtilDateTime method..
> > > >>> --
> > > >>> Rupert Howell
> > > >>>
> > > >>> Provolve Ltd
> > > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
> > UK
> > > >>>
> > > >>> t: 01730 267868 / m: 079 0968 5308
> > > >>> e:  [hidden email]
> > > >>> w: http://www.provolve.com
> > > >>>
> > > >>
> > > >>
> > > >
> > >
> >
> >
> >
> > --
> > Rupert Howell
> >
> > Provolve Ltd
> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >
> > t: 01730 267868 / m: 079 0968 5308
> > e:  [hidden email]
> > w: http://www.provolve.com
> >
> >
> >
> > This email is intended only for the above addressee. It may contain
> > privileged information. If you are not the addressee you must not copy,
> > distribute, disclose or use any of the information in it. If you have
> > received it in error, please delete it and notify the sender.
> >
> > Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
> > Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
> > No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
> > Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No.
> 1401451.
> >
> > All registered offices at Watt Close, East Portway, Andover, Hampshire,
> > SP10 3SD, England.
> >
> > All Registered in England and Wales.
>
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Adrian Crum-3
In reply to this post by rhowell
Please do not provide a patch. The problem is not caused by applying a  
time zone to a date - it is caused by something else. All of this was  
working correctly until now, so there must be a problem somewhere else.

-Adrian


Quoting Rupert Howell <[hidden email]>:

> Thanks Gareth that was put much more eloquently.
> Adrian / Pierre are you happy there's an issue here and I'll raise a Jira
> and submit a patch.
>
> Can we discuss if there's a need for for a new "date-fixed" field type that
> never has the timezone applied to the date format on display or whether we
> should use the existing date as a container for a specific moment in time
> that is completely TZ independent. In my mind the latter is how it should
> be since java.util.Date has no TZ information attached to it I cant see how
> formatting it with a  timezone is atall beneficial.
>
> Best Regards,
>
>
> On 1 April 2014 09:45, <[hidden email]> wrote:
>
>> Hi all
>>
>> Me and Rupert have been looking at this as we've had this issue for a
>> while with specifically the Birth Date field - but any date only fields
>> will have this issue.
>>
>> The birth date field is date only in ofbiz and in the database
>> java.sql.Date is returned from jdbc drivers when the field is SQL date,
>> the date will be set but the time will always be 00:00:00. The
>> java.sql.Date is only there to represent date only component of
>> java,util.Date (java.sql.Date overrides toString method to return only the
>> date)
>> Because java.sql.Date extends java.util.Date and can be used in DateFormat
>> class, applying a timezone with a negative offset will shift the day to the
>> previous day because time is ALWAYS set to 00:00:00
>>
>> This also occurs in freemarker if you convert a java.sql.Date to a string
>> using syntax such as ${date?string} where date is a java.sql.Date object. I
>> have created a fix in my fork at
>> https://github.com/gareth-carter/freemarker
>>
>>  *Gareth Carter *
>>
>> *Software Development Analyst*
>>
>> *Stannah Management Services Ltd*
>>
>> *IT*
>>
>> *Ext:*
>>
>> 7036
>>
>> *Tel:*
>>
>> 01264 364311
>>
>> *Fax:*
>>
>>
>>
>>   Please consider the environment before printing this email.
>>
>>
>>
>>
>>
>> From:        Rupert Howell <[hidden email]>
>> To:        "[hidden email]" <[hidden email]>
>> Date:        01/04/2014 09:27
>> Subject:        Re: Birthday's Change
>> ------------------------------
>>
>>
>>
>> My birth date is my birth date wherever I am in the world - it is not
>> relative. My passport doesn't change as I travel through Timezones. Yet if
>> I view my passport information is OFBiz it will change,
>> Dates need to be viewed as dates and be totally independent of timezones. I
>> cannot think of a single reason why you would want to be specific with
>> dates. If you do want to be specific and have them change as to where you
>> view them from - you'd just use Timestamps.
>>
>>
>> On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
>>
>> > Rupert,
>> >
>> > You are right when you don't want to be to specific. But if you are
>> > specific and precise then a birthday needs to have a time zone
>> associated.
>> >
>> > Remember it is not the birthday itself that shifts, but your viewpoint of
>> > it when changing locations (meaning time zones).
>> >
>> > Regarding.
>> >
>> > Pierre Smits
>> >
>> > *ORRTIZ.COM <http://www.orrtiz.com>*
>> > Services & Solutions for Cloud-
>> > Based Manufacturing, Professional
>> > Services and Retail & Trade
>> > http://www.orrtiz.com
>> >
>> >
>> > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
>> > >wrote:
>> >
>> > > Hmm.
>> > >
>> > > Digging a bit deeper I see that birthday is persisted as a date. So
>> that
>> > > shouldn't be creating issues.
>> > >
>> > >
>> > > Pierre Smits
>> > >
>> > > *ORRTIZ.COM <http://www.orrtiz.com>*
>> > > Services & Solutions for Cloud-
>> > > Based Manufacturing, Professional
>> > > Services and Retail & Trade
>> > > http://www.orrtiz.com
>> > >
>> > >
>> > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
>> > >wrote:
>> > >
>> > >> Rupert,
>> > >>
>> > >> A date should not be stored as a date-time, but as a date. This
>> appears
>> > >> throughout the entire spectrum of apps where dates are intended. Over
>> > 600
>> > >> entity fields are designated as date-time, 18 entity fields are
>> > designated
>> > >> as date and 8 as time.
>> > >>
>> > >> Regards,
>> > >>
>> > >> Pierre Smits
>> > >>
>> > >> *ORRTIZ.COM <http://www.orrtiz.com>*
>> > >> Services & Solutions for Cloud-
>> > >> Based Manufacturing, Professional
>> > >> Services and Retail & Trade
>> > >> http://www.orrtiz.com
>> > >>
>> > >>
>> > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
>> > [hidden email]>wrote:
>> > >>
>> > >>> There's a definite problem with the way the dates are displayed in
>> > OFBiz.
>> > >>> If you enter a birthday with your local timezone set to UTC, then
>> > change
>> > >>> the timezone to -12, the birthday changes to the previous day. This
>> is
>> > >>> clearly wrong and is really apparent if you have your Server Timezone
>> > set
>> > >>> to GB. If the birthday is within BST (April - October) and you are in
>> > GMT
>> > >>> (Nov - March) they all appear incorrectly and vice versa.
>> > >>>
>> > >>> Ultimately this is caused by line 977 UtilDateTime
>> > >>>
>> > >>> f.setTimeZone(tz);
>> > >>>
>> > >>> Can anyone think of a legitimate reason why a date would have a
>> > timezone
>> > >>> applied? A date is a date. January 1st is January 1st no matter where
>> > in
>> > >>> the world you are. I would have thought if you want a date to be
>> > timezone
>> > >>> dependent you'd use a Timestamp.
>> > >>>
>> > >>> I could patch line 666 of ModelFormField but I think it would be
>> better
>> > >>> to
>> > >>> actually change the UtilDateTime method..
>> > >>> --
>> > >>> Rupert Howell
>> > >>>
>> > >>> Provolve Ltd
>> > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
>> UK
>> > >>>
>> > >>> t: 01730 267868 / m: 079 0968 5308
>> > >>> e:  [hidden email]
>> > >>> w: http://www.provolve.com
>> > >>>
>> > >>
>> > >>
>> > >
>> >
>>
>>
>>
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>>
>>
>> This email is intended only for the above addressee. It may contain
>> privileged information. If you are not the addressee you must not copy,
>> distribute, disclose or use any of the information in it. If you have
>> received it in error, please delete it and notify the sender.
>>
>> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
>> Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
>> No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
>> Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>>
>> All registered offices at Watt Close, East Portway, Andover, Hampshire,
>> SP10 3SD, England.
>>
>> All Registered in England and Wales.
>
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w: http://www.provolve.com
>



Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

gareth_carter
In reply to this post by Pierre Smits
Piere - SQL dates are stored without timezone information and dates are returned exactly the same with different default database timezones - unless you specifically convert the date field to a different timezone in SQL

Such as

Default timezone on our database
set timezone to 'GB';
select birth_date, timezone('Canada/Atlantic', birth_date) from person where birth_date is not null limit 100;

Swap to see change in second column but birth_date is unaffected by the timezone in db
set timezone to 'Canada/Atlantic';
select birth_date, timezone('GB', birth_date) from person where birth_date is not null limit 100;

In my opinion, this convention should be followed in ofbiz, you cannot correctly apply a timezone to a date only field without knowing the time!



Adrian - We have had this issue for over a Year now and had a brief discussion with Hans about this a while back.  My opinion it is the timezone being applied to java.sql.Date incorrectly that is at fault. Freemarker also has the same issue

Gareth Carter

Software Development Analyst

Stannah Management Services Ltd

IT

Ext:

7036

Tel:

01264 364311

Fax:



Please consider the environment before printing this email.






From:        Pierre Smits <[hidden email]>
To:        [hidden email]
Date:        01/04/2014 11:15
Subject:        Re: Birthday's Change




Rupert,

Please create the JIRA issue. Irrespective of what the users timezone is,
the date must always be stored in accordance with the timezone setting of
the internal company used (with a failover (if not set) to the default of
the tenant, which - if not set - fails over to the default of the OFBiz
setup (from a .properties file). And yes, calculations to/from should
always have 12:00 noon in mind.

Regards,

Pierre Smits

*ORRTIZ.COM <
http://www.orrtiz.com>*
Services & Solutions for Cloud-
Based Manufacturing, Professional
Services and Retail & Trade
http://www.orrtiz.com


On Tue, Apr 1, 2014 at 12:10 PM, Rupert Howell <[hidden email]>wrote:

> Thanks Gareth that was put much more eloquently.
> Adrian / Pierre are you happy there's an issue here and I'll raise a Jira
> and submit a patch.
>
> Can we discuss if there's a need for for a new "date-fixed" field type that
> never has the timezone applied to the date format on display or whether we
> should use the existing date as a container for a specific moment in time
> that is completely TZ independent. In my mind the latter is how it should
> be since java.util.Date has no TZ information attached to it I cant see how
> formatting it with a  timezone is atall beneficial.
>
> Best Regards,
>
>
> On 1 April 2014 09:45, <[hidden email]> wrote:
>
> > Hi all
> >
> > Me and Rupert have been looking at this as we've had this issue for a
> > while with specifically the Birth Date field - but any date only fields
> > will have this issue.
> >
> > The birth date field is date only in ofbiz and in the database
> > java.sql.Date is returned from jdbc drivers when the field is SQL date,
> > the date will be set but the time will always be 00:00:00. The
> > java.sql.Date is only there to represent date only component of
> > java,util.Date (java.sql.Date overrides toString method to return only
> the
> > date)
> > Because java.sql.Date extends java.util.Date and can be used in
> DateFormat
> > class, applying a timezone with a negative offset will shift the day to
> the
> > previous day because time is ALWAYS set to 00:00:00
> >
> > This also occurs in freemarker if you convert a java.sql.Date to a string
> > using syntax such as ${date?string} where date is a java.sql.Date
> object. I
> > have created a fix in my fork at
> >
https://github.com/gareth-carter/freemarker
> >
> >  *Gareth Carter *
> >
> > *Software Development Analyst*
> >
> > *Stannah Management Services Ltd*
> >
> > *IT*
> >
> > *Ext:*
> >
> > 7036
> >
> > *Tel:*
> >
> > 01264 364311
> >
> > *Fax:*
> >
> >
> >
> >   Please consider the environment before printing this email.
> >
> >
> >
> >
> >
> > From:        Rupert Howell <[hidden email]>
> > To:        "[hidden email]" <[hidden email]>
> > Date:        01/04/2014 09:27
> > Subject:        Re: Birthday's Change
> > ------------------------------
> >
> >
> >
> > My birth date is my birth date wherever I am in the world - it is not
> > relative. My passport doesn't change as I travel through Timezones. Yet
> if
> > I view my passport information is OFBiz it will change,
> > Dates need to be viewed as dates and be totally independent of
> timezones. I
> > cannot think of a single reason why you would want to be specific with
> > dates. If you do want to be specific and have them change as to where you
> > view them from - you'd just use Timestamps.
> >
> >
> > On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
> >
> > > Rupert,
> > >
> > > You are right when you don't want to be to specific. But if you are
> > > specific and precise then a birthday needs to have a time zone
> > associated.
> > >
> > > Remember it is not the birthday itself that shifts, but your viewpoint
> of
> > > it when changing locations (meaning time zones).
> > >
> > > Regarding.
> > >
> > > Pierre Smits
> > >
> > > *ORRTIZ.COM <
http://www.orrtiz.com>*
> > > Services & Solutions for Cloud-
> > > Based Manufacturing, Professional
> > > Services and Retail & Trade
> > >
http://www.orrtiz.com
> > >
> > >
> > > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
> > > >wrote:
> > >
> > > > Hmm.
> > > >
> > > > Digging a bit deeper I see that birthday is persisted as a date. So
> > that
> > > > shouldn't be creating issues.
> > > >
> > > >
> > > > Pierre Smits
> > > >
> > > > *ORRTIZ.COM <
http://www.orrtiz.com>*
> > > > Services & Solutions for Cloud-
> > > > Based Manufacturing, Professional
> > > > Services and Retail & Trade
> > > >
http://www.orrtiz.com
> > > >
> > > >
> > > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <
> [hidden email]
> > > >wrote:
> > > >
> > > >> Rupert,
> > > >>
> > > >> A date should not be stored as a date-time, but as a date. This
> > appears
> > > >> throughout the entire spectrum of apps where dates are intended.
> Over
> > > 600
> > > >> entity fields are designated as date-time, 18 entity fields are
> > > designated
> > > >> as date and 8 as time.
> > > >>
> > > >> Regards,
> > > >>
> > > >> Pierre Smits
> > > >>
> > > >> *ORRTIZ.COM <
http://www.orrtiz.com>*
> > > >> Services & Solutions for Cloud-
> > > >> Based Manufacturing, Professional
> > > >> Services and Retail & Trade
> > > >>
http://www.orrtiz.com
> > > >>
> > > >>
> > > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
> > > [hidden email]>wrote:
> > > >>
> > > >>> There's a definite problem with the way the dates are displayed in
> > > OFBiz.
> > > >>> If you enter a birthday with your local timezone set to UTC, then
> > > change
> > > >>> the timezone to -12, the birthday changes to the previous day. This
> > is
> > > >>> clearly wrong and is really apparent if you have your Server
> Timezone
> > > set
> > > >>> to GB. If the birthday is within BST (April - October) and you are
> in
> > > GMT
> > > >>> (Nov - March) they all appear incorrectly and vice versa.
> > > >>>
> > > >>> Ultimately this is caused by line 977 UtilDateTime
> > > >>>
> > > >>> f.setTimeZone(tz);
> > > >>>
> > > >>> Can anyone think of a legitimate reason why a date would have a
> > > timezone
> > > >>> applied? A date is a date. January 1st is January 1st no matter
> where
> > > in
> > > >>> the world you are. I would have thought if you want a date to be
> > > timezone
> > > >>> dependent you'd use a Timestamp.
> > > >>>
> > > >>> I could patch line 666 of ModelFormField but I think it would be
> > better
> > > >>> to
> > > >>> actually change the UtilDateTime method..
> > > >>> --
> > > >>> Rupert Howell
> > > >>>
> > > >>> Provolve Ltd
> > > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
> > UK
> > > >>>
> > > >>> t: 01730 267868 / m: 079 0968 5308
> > > >>> e:  [hidden email]
> > > >>> w:
http://www.provolve.com
> > > >>>
> > > >>
> > > >>
> > > >
> > >
> >
> >
> >
> > --
> > Rupert Howell
> >
> > Provolve Ltd
> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
> >
> > t: 01730 267868 / m: 079 0968 5308
> > e:  [hidden email]
> > w:
http://www.provolve.com
> >
> >
> >
> > This email is intended only for the above addressee. It may contain
> > privileged information. If you are not the addressee you must not copy,
> > distribute, disclose or use any of the information in it. If you have
> > received it in error, please delete it and notify the sender.
> >
> > Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
> > Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
> > No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
> > Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No.
> 1401451.
> >
> > All registered offices at Watt Close, East Portway, Andover, Hampshire,
> > SP10 3SD, England.
> >
> > All Registered in England and Wales.
>
>
>
>
> --
> Rupert Howell
>
> Provolve Ltd
> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>
> t: 01730 267868 / m: 079 0968 5308
> e:  [hidden email]
> w:
http://www.provolve.com
>



This email is intended only for the above addressee. It may contain privileged information. If you are not the addressee you must not copy, distribute, disclose or use any of the information in it. If you have received it in error, please delete it and notify the sender.

Stannah Lift Holdings Ltd registered No. 686996, Stannah Management Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.

All registered offices at Watt Close, East Portway, Andover, Hampshire, SP10 3SD, England.

All Registered in England and Wales.
Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Adrian Crum-3
How a DB manufacturer persists a date field is irrelevant. The issue  
here is how Java handles the date type in the JDBC driver and  
supporting code.

I repeat:

I can reproduce the problem using a time zone with ZERO OFFSET, so  
this is not a problem caused by applying a time zone to a date. More  
likely, it is a problem with the WRONG time zone being applied to a  
date.

-Adrian


Quoting [hidden email]:

> Piere - SQL dates are stored without timezone information and dates are
> returned exactly the same with different default database timezones -
> unless you specifically convert the date field to a different timezone in
> SQL
>
> Such as
>
> Default timezone on our database
> set timezone to 'GB';
> select birth_date, timezone('Canada/Atlantic', birth_date) from person
> where birth_date is not null limit 100;
>
> Swap to see change in second column but birth_date is unaffected by the
> timezone in db
> set timezone to 'Canada/Atlantic';
> select birth_date, timezone('GB', birth_date) from person where birth_date
> is not null limit 100;
>
> In my opinion, this convention should be followed in ofbiz, you cannot
> correctly apply a timezone to a date only field without knowing the time!
>
>
>
> Adrian - We have had this issue for over a Year now and had a brief
> discussion with Hans about this a while back.  My opinion it is the
> timezone being applied to java.sql.Date incorrectly that is at fault.
> Freemarker also has the same issue
>
>
>
> Gareth Carter
> Software Development Analyst
> Stannah Management Services Ltd
> IT
>
> Ext: 7036
> Tel: 01264 364311
> Fax:
>
>
>
>
> Please consider the environment before printing this email.
>
>
>
> From:   Pierre Smits <[hidden email]>
> To:     [hidden email]
> Date:   01/04/2014 11:15
> Subject:        Re: Birthday's Change
>
>
>
> Rupert,
>
> Please create the JIRA issue. Irrespective of what the users timezone is,
> the date must always be stored in accordance with the timezone setting of
> the internal company used (with a failover (if not set) to the default of
> the tenant, which - if not set - fails over to the default of the OFBiz
> setup (from a .properties file). And yes, calculations to/from should
> always have 12:00 noon in mind.
>
> Regards,
>
> Pierre Smits
>
> *ORRTIZ.COM <http://www.orrtiz.com>*
> Services & Solutions for Cloud-
> Based Manufacturing, Professional
> Services and Retail & Trade
> http://www.orrtiz.com
>
>
> On Tue, Apr 1, 2014 at 12:10 PM, Rupert Howell
> <[hidden email]>wrote:
>
>> Thanks Gareth that was put much more eloquently.
>> Adrian / Pierre are you happy there's an issue here and I'll raise a
> Jira
>> and submit a patch.
>>
>> Can we discuss if there's a need for for a new "date-fixed" field type
> that
>> never has the timezone applied to the date format on display or whether
> we
>> should use the existing date as a container for a specific moment in
> time
>> that is completely TZ independent. In my mind the latter is how it
> should
>> be since java.util.Date has no TZ information attached to it I cant see
> how
>> formatting it with a  timezone is atall beneficial.
>>
>> Best Regards,
>>
>>
>> On 1 April 2014 09:45, <[hidden email]> wrote:
>>
>> > Hi all
>> >
>> > Me and Rupert have been looking at this as we've had this issue for a
>> > while with specifically the Birth Date field - but any date only
> fields
>> > will have this issue.
>> >
>> > The birth date field is date only in ofbiz and in the database
>> > java.sql.Date is returned from jdbc drivers when the field is SQL
> date,
>> > the date will be set but the time will always be 00:00:00. The
>> > java.sql.Date is only there to represent date only component of
>> > java,util.Date (java.sql.Date overrides toString method to return only
>> the
>> > date)
>> > Because java.sql.Date extends java.util.Date and can be used in
>> DateFormat
>> > class, applying a timezone with a negative offset will shift the day
> to
>> the
>> > previous day because time is ALWAYS set to 00:00:00
>> >
>> > This also occurs in freemarker if you convert a java.sql.Date to a
> string
>> > using syntax such as ${date?string} where date is a java.sql.Date
>> object. I
>> > have created a fix in my fork at
>> > https://github.com/gareth-carter/freemarker
>> >
>> >  *Gareth Carter *
>> >
>> > *Software Development Analyst*
>> >
>> > *Stannah Management Services Ltd*
>> >
>> > *IT*
>> >
>> > *Ext:*
>> >
>> > 7036
>> >
>> > *Tel:*
>> >
>> > 01264 364311
>> >
>> > *Fax:*
>> >
>> >
>> >
>> >   Please consider the environment before printing this email.
>> >
>> >
>> >
>> >
>> >
>> > From:        Rupert Howell <[hidden email]>
>> > To:        "[hidden email]" <[hidden email]>
>> > Date:        01/04/2014 09:27
>> > Subject:        Re: Birthday's Change
>> > ------------------------------
>> >
>> >
>> >
>> > My birth date is my birth date wherever I am in the world - it is not
>> > relative. My passport doesn't change as I travel through Timezones.
> Yet
>> if
>> > I view my passport information is OFBiz it will change,
>> > Dates need to be viewed as dates and be totally independent of
>> timezones. I
>> > cannot think of a single reason why you would want to be specific with
>> > dates. If you do want to be specific and have them change as to where
> you
>> > view them from - you'd just use Timestamps.
>> >
>> >
>> > On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
>> >
>> > > Rupert,
>> > >
>> > > You are right when you don't want to be to specific. But if you are
>> > > specific and precise then a birthday needs to have a time zone
>> > associated.
>> > >
>> > > Remember it is not the birthday itself that shifts, but your
> viewpoint
>> of
>> > > it when changing locations (meaning time zones).
>> > >
>> > > Regarding.
>> > >
>> > > Pierre Smits
>> > >
>> > > *ORRTIZ.COM <http://www.orrtiz.com>*
>> > > Services & Solutions for Cloud-
>> > > Based Manufacturing, Professional
>> > > Services and Retail & Trade
>> > > http://www.orrtiz.com
>> > >
>> > >
>> > > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits
> <[hidden email]
>> > > >wrote:
>> > >
>> > > > Hmm.
>> > > >
>> > > > Digging a bit deeper I see that birthday is persisted as a date.
> So
>> > that
>> > > > shouldn't be creating issues.
>> > > >
>> > > >
>> > > > Pierre Smits
>> > > >
>> > > > *ORRTIZ.COM <http://www.orrtiz.com>*
>> > > > Services & Solutions for Cloud-
>> > > > Based Manufacturing, Professional
>> > > > Services and Retail & Trade
>> > > > http://www.orrtiz.com
>> > > >
>> > > >
>> > > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <
>> [hidden email]
>> > > >wrote:
>> > > >
>> > > >> Rupert,
>> > > >>
>> > > >> A date should not be stored as a date-time, but as a date. This
>> > appears
>> > > >> throughout the entire spectrum of apps where dates are intended.
>> Over
>> > > 600
>> > > >> entity fields are designated as date-time, 18 entity fields are
>> > > designated
>> > > >> as date and 8 as time.
>> > > >>
>> > > >> Regards,
>> > > >>
>> > > >> Pierre Smits
>> > > >>
>> > > >> *ORRTIZ.COM <http://www.orrtiz.com>*
>> > > >> Services & Solutions for Cloud-
>> > > >> Based Manufacturing, Professional
>> > > >> Services and Retail & Trade
>> > > >> http://www.orrtiz.com
>> > > >>
>> > > >>
>> > > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
>> > > [hidden email]>wrote:
>> > > >>
>> > > >>> There's a definite problem with the way the dates are displayed
> in
>> > > OFBiz.
>> > > >>> If you enter a birthday with your local timezone set to UTC,
> then
>> > > change
>> > > >>> the timezone to -12, the birthday changes to the previous day.
> This
>> > is
>> > > >>> clearly wrong and is really apparent if you have your Server
>> Timezone
>> > > set
>> > > >>> to GB. If the birthday is within BST (April - October) and you
> are
>> in
>> > > GMT
>> > > >>> (Nov - March) they all appear incorrectly and vice versa.
>> > > >>>
>> > > >>> Ultimately this is caused by line 977 UtilDateTime
>> > > >>>
>> > > >>> f.setTimeZone(tz);
>> > > >>>
>> > > >>> Can anyone think of a legitimate reason why a date would have a
>> > > timezone
>> > > >>> applied? A date is a date. January 1st is January 1st no matter
>> where
>> > > in
>> > > >>> the world you are. I would have thought if you want a date to be
>> > > timezone
>> > > >>> dependent you'd use a Timestamp.
>> > > >>>
>> > > >>> I could patch line 666 of ModelFormField but I think it would be
>> > better
>> > > >>> to
>> > > >>> actually change the UtilDateTime method..
>> > > >>> --
>> > > >>> Rupert Howell
>> > > >>>
>> > > >>> Provolve Ltd
>> > > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32
> 3EW,
>> > UK
>> > > >>>
>> > > >>> t: 01730 267868 / m: 079 0968 5308
>> > > >>> e:  [hidden email]
>> > > >>> w: http://www.provolve.com
>> > > >>>
>> > > >>
>> > > >>
>> > > >
>> > >
>> >
>> >
>> >
>> > --
>> > Rupert Howell
>> >
>> > Provolve Ltd
>> > Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>> >
>> > t: 01730 267868 / m: 079 0968 5308
>> > e:  [hidden email]
>> > w: http://www.provolve.com
>> >
>> >
>> >
>> > This email is intended only for the above addressee. It may contain
>> > privileged information. If you are not the addressee you must not
> copy,
>> > distribute, disclose or use any of the information in it. If you have
>> > received it in error, please delete it and notify the sender.
>> >
>> > Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
>> > Services Ltd registered No. 2483693, Stannah Lift Services Ltd
> registered
>> > No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah
> Lifts
>> > Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No.
>> 1401451.
>> >
>> > All registered offices at Watt Close, East Portway, Andover,
> Hampshire,
>> > SP10 3SD, England.
>> >
>> > All Registered in England and Wales.
>>
>>
>>
>>
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>
>
> This email is intended only for the above addressee. It may contain  
> privileged information. If you are not the addressee you must not  
> copy, distribute, disclose or use any of the information in it. If  
> you have received it in error, please delete it and notify the sender.
>
> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management  
> Services Ltd registered No. 2483693, Stannah Lift Services Ltd  
> registered No. 1189799, Stannah Microlifts Ltd registered No.  
> 964804, Stannah Lifts Ltd registered No. 1189836, Stannah Stairlifts  
> Ltd registered No. 1401451.
>
> All registered offices at Watt Close, East Portway, Andover,  
> Hampshire, SP10 3SD, England.
>
> All Registered in England and Wales.
>



Reply | Threaded
Open this post in threaded view
|

Re: Birthday's Change

Jacques Le Roux
Administrator
In reply to this post by Adrian Crum-3
Rupert, Gareth,

Can we qualify "recently"? I guess R13.07 works?
Then by dichotomy it should not be too hard to find a range of concerned commits and then the culprit.
The result of these research would fit in the Jira

Thanks

Jacques

Le 01/04/2014 12:17, [hidden email] a écrit :

> Please do not provide a patch. The problem is not caused by applying a time zone to a date - it is caused by something else. All of this was working
> correctly until now, so there must be a problem somewhere else.
>
> -Adrian
>
>
> Quoting Rupert Howell <[hidden email]>:
>
>> Thanks Gareth that was put much more eloquently.
>> Adrian / Pierre are you happy there's an issue here and I'll raise a Jira
>> and submit a patch.
>>
>> Can we discuss if there's a need for for a new "date-fixed" field type that
>> never has the timezone applied to the date format on display or whether we
>> should use the existing date as a container for a specific moment in time
>> that is completely TZ independent. In my mind the latter is how it should
>> be since java.util.Date has no TZ information attached to it I cant see how
>> formatting it with a  timezone is atall beneficial.
>>
>> Best Regards,
>>
>>
>> On 1 April 2014 09:45, <[hidden email]> wrote:
>>
>>> Hi all
>>>
>>> Me and Rupert have been looking at this as we've had this issue for a
>>> while with specifically the Birth Date field - but any date only fields
>>> will have this issue.
>>>
>>> The birth date field is date only in ofbiz and in the database
>>> java.sql.Date is returned from jdbc drivers when the field is SQL date,
>>> the date will be set but the time will always be 00:00:00. The
>>> java.sql.Date is only there to represent date only component of
>>> java,util.Date (java.sql.Date overrides toString method to return only the
>>> date)
>>> Because java.sql.Date extends java.util.Date and can be used in DateFormat
>>> class, applying a timezone with a negative offset will shift the day to the
>>> previous day because time is ALWAYS set to 00:00:00
>>>
>>> This also occurs in freemarker if you convert a java.sql.Date to a string
>>> using syntax such as ${date?string} where date is a java.sql.Date object. I
>>> have created a fix in my fork at
>>> https://github.com/gareth-carter/freemarker
>>>
>>>  *Gareth Carter *
>>>
>>> *Software Development Analyst*
>>>
>>> *Stannah Management Services Ltd*
>>>
>>> *IT*
>>>
>>> *Ext:*
>>>
>>> 7036
>>>
>>> *Tel:*
>>>
>>> 01264 364311
>>>
>>> *Fax:*
>>>
>>>
>>>
>>>   Please consider the environment before printing this email.
>>>
>>>
>>>
>>>
>>>
>>> From:        Rupert Howell <[hidden email]>
>>> To:        "[hidden email]" <[hidden email]>
>>> Date:        01/04/2014 09:27
>>> Subject:        Re: Birthday's Change
>>> ------------------------------
>>>
>>>
>>>
>>> My birth date is my birth date wherever I am in the world - it is not
>>> relative. My passport doesn't change as I travel through Timezones. Yet if
>>> I view my passport information is OFBiz it will change,
>>> Dates need to be viewed as dates and be totally independent of timezones. I
>>> cannot think of a single reason why you would want to be specific with
>>> dates. If you do want to be specific and have them change as to where you
>>> view them from - you'd just use Timestamps.
>>>
>>>
>>> On 1 April 2014 09:12, Pierre Smits <[hidden email]> wrote:
>>>
>>> > Rupert,
>>> >
>>> > You are right when you don't want to be to specific. But if you are
>>> > specific and precise then a birthday needs to have a time zone
>>> associated.
>>> >
>>> > Remember it is not the birthday itself that shifts, but your viewpoint of
>>> > it when changing locations (meaning time zones).
>>> >
>>> > Regarding.
>>> >
>>> > Pierre Smits
>>> >
>>> > *ORRTIZ.COM <http://www.orrtiz.com>*
>>> > Services & Solutions for Cloud-
>>> > Based Manufacturing, Professional
>>> > Services and Retail & Trade
>>> > http://www.orrtiz.com
>>> >
>>> >
>>> > On Tue, Apr 1, 2014 at 10:04 AM, Pierre Smits <[hidden email]
>>> > >wrote:
>>> >
>>> > > Hmm.
>>> > >
>>> > > Digging a bit deeper I see that birthday is persisted as a date. So
>>> that
>>> > > shouldn't be creating issues.
>>> > >
>>> > >
>>> > > Pierre Smits
>>> > >
>>> > > *ORRTIZ.COM <http://www.orrtiz.com>*
>>> > > Services & Solutions for Cloud-
>>> > > Based Manufacturing, Professional
>>> > > Services and Retail & Trade
>>> > > http://www.orrtiz.com
>>> > >
>>> > >
>>> > > On Tue, Apr 1, 2014 at 10:00 AM, Pierre Smits <[hidden email]
>>> > >wrote:
>>> > >
>>> > >> Rupert,
>>> > >>
>>> > >> A date should not be stored as a date-time, but as a date. This
>>> appears
>>> > >> throughout the entire spectrum of apps where dates are intended. Over
>>> > 600
>>> > >> entity fields are designated as date-time, 18 entity fields are
>>> > designated
>>> > >> as date and 8 as time.
>>> > >>
>>> > >> Regards,
>>> > >>
>>> > >> Pierre Smits
>>> > >>
>>> > >> *ORRTIZ.COM <http://www.orrtiz.com>*
>>> > >> Services & Solutions for Cloud-
>>> > >> Based Manufacturing, Professional
>>> > >> Services and Retail & Trade
>>> > >> http://www.orrtiz.com
>>> > >>
>>> > >>
>>> > >> On Tue, Apr 1, 2014 at 9:46 AM, Rupert Howell <
>>> > [hidden email]>wrote:
>>> > >>
>>> > >>> There's a definite problem with the way the dates are displayed in
>>> > OFBiz.
>>> > >>> If you enter a birthday with your local timezone set to UTC, then
>>> > change
>>> > >>> the timezone to -12, the birthday changes to the previous day. This
>>> is
>>> > >>> clearly wrong and is really apparent if you have your Server Timezone
>>> > set
>>> > >>> to GB. If the birthday is within BST (April - October) and you are in
>>> > GMT
>>> > >>> (Nov - March) they all appear incorrectly and vice versa.
>>> > >>>
>>> > >>> Ultimately this is caused by line 977 UtilDateTime
>>> > >>>
>>> > >>> f.setTimeZone(tz);
>>> > >>>
>>> > >>> Can anyone think of a legitimate reason why a date would have a
>>> > timezone
>>> > >>> applied? A date is a date. January 1st is January 1st no matter where
>>> > in
>>> > >>> the world you are. I would have thought if you want a date to be
>>> > timezone
>>> > >>> dependent you'd use a Timestamp.
>>> > >>>
>>> > >>> I could patch line 666 of ModelFormField but I think it would be
>>> better
>>> > >>> to
>>> > >>> actually change the UtilDateTime method..
>>> > >>> --
>>> > >>> Rupert Howell
>>> > >>>
>>> > >>> Provolve Ltd
>>> > >>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW,
>>> UK
>>> > >>>
>>> > >>> t: 01730 267868 / m: 079 0968 5308
>>> > >>> e:  [hidden email]
>>> > >>> w: http://www.provolve.com
>>> > >>>
>>> > >>
>>> > >>
>>> > >
>>> >
>>>
>>>
>>>
>>> --
>>> Rupert Howell
>>>
>>> Provolve Ltd
>>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>>
>>> t: 01730 267868 / m: 079 0968 5308
>>> e:  [hidden email]
>>> w: http://www.provolve.com
>>>
>>>
>>>
>>> This email is intended only for the above addressee. It may contain
>>> privileged information. If you are not the addressee you must not copy,
>>> distribute, disclose or use any of the information in it. If you have
>>> received it in error, please delete it and notify the sender.
>>>
>>> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
>>> Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
>>> No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
>>> Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>>>
>>> All registered offices at Watt Close, East Portway, Andover, Hampshire,
>>> SP10 3SD, England.
>>>
>>> All Registered in England and Wales.
>>
>>
>>
>>
>> --
>> Rupert Howell
>>
>> Provolve Ltd
>> Front Office, Deale House, 16 Lavant Street, Petersfield, GU32 3EW, UK
>>
>> t: 01730 267868 / m: 079 0968 5308
>> e:  [hidden email]
>> w: http://www.provolve.com
>>
>
>
>
>

--
Jacques Le Roux
400E Chemin de la Mouline
34560 Poussan
33+(0)4 67 51 19 38
33+(0)6 11 19 50 28

12