Fixed in rev 1585574. Thanks!

-Adrian


Quoting gareth_car...@stannah.co.uk:

The reason for this is because the mod Adrian Made for  OFBIZ-5608, which
calls getYear(), getMonth(), getDay() of java.util.Date, however getDay()
returns the day of week not of the month, getDate() returns day of month.



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:   Jacques Le Roux <jacques.le.r...@les7arts.com>
To:     dev@ofbiz.apache.org
Date:   05/04/2014 11:37
Subject:        Re: Birthday's Change



Thanks Adrian!

Is that a false failure or a test to adapt?
http://ci.apache.org/projects/ofbiz/logs/trunk/html/

Plain text:
basetests    testString    Failure
String->java.sql.Date(:0):default-timezone/locale expected:<1969-12-31>
but was:<1969-12-03>

junit.framework.AssertionFailedError:
String->java.sql.Date(:0):default-timezone/locale expected:<1969-12-31>
but was:<1969-12-03>
at
org.ofbiz.base.test.GenericTestCaseBase.assertEquals(GenericTestCaseBase.java:343)
at
org.ofbiz.base.util.test.ObjectTypeTests.simpleTypeConvertTest(ObjectTypeTests.java:114)
at
org.ofbiz.base.util.test.ObjectTypeTests.simpleTypeConvertTestSingleMulti(ObjectTypeTests.java:142)
at
org.ofbiz.base.util.test.ObjectTypeTests.testString(ObjectTypeTests.java:230)
at org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:147)
at
org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
at org.ofbiz.base.start.Start.startStartLoaders(Start.java:340)
at org.ofbiz.base.start.Start.start(Start.java:382)
at org.ofbiz.base.start.Start.main(Start.java:122)

Jacques

Le 05/04/2014 11:56, adrian.c...@sandglass-software.com a écrit :
Fixed, revision 1585033.

Rupert - I apologize if my reply offended you. I was trying to stop the
spread of misinformation.

As I tried to point out, the problem was not due to applying a timezone
to the date formatter. Keep in mind the date formatter contains a Calendar

instance, and that Calendar instance contains a TimeZone instance. If
you don't specify a time zone, then the system default it used.

The problem was due to how java.sql.Date behaves when it contains a time
component. I fixed the conversion framework to mask out the time
component.

-Adrian


Quoting Rupert Howell <ruperthow...@provolve.com>:

Jacques.

The problem I am describing exists in 13.07. I can check if it exists
in
12.04 but I strongly suspect it will.

Adrian.

Our discussion so far does not indicate a lack of understanding - we
have
spent a fair amount of time looking into this and investigating it.
Your
last comment was unnecessary. I do not think you should be actively
resisting users from looking into issues with statements like that.


On 1 April 2014 12:17, Jacques Le Roux <jacques.le.r...@les7arts.com>
wrote:

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, adrian.c...@sandglass-software.com 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 <ruperthow...@provolve.com>:

 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, <gareth_car...@stannah.co.uk> 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 <ruperthow...@provolve.com>
To:        "dev@ofbiz.apache.org" <dev@ofbiz.apache.org>
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 <pierre.sm...@gmail.com> 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
<pierre.sm...@gmail.com
> >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 <
pierre.sm...@gmail.com
> >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 <
> ruperthow...@provolve.com>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:  ruperthow...@provolve.com
> >>> 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:  ruperthow...@provolve.com
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:  ruperthow...@provolve.com
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




--
Rupert Howell

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

t: 01730 267868 / m: 079 0968 5308
e:  ruperthow...@provolve.com
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 via email to