[
https://issues.apache.org/jira/browse/OLINGO-864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15130797#comment-15130797
]
Ramesh Reddy commented on OLINGO-864:
-------------------------------------
[~chrisam] or [~mibo] Can you take look at this branch for the changes, and
pull into master?
Basically, the changes include, during the Edm.Date and Edm.TimeOfDay the "GMT"
assumed, however there is no timezone information defined on these OData types.
Then the problem gets exacerbated when it gets when working with java util and
sql types. The solution is this patch simple, but elegant, it assumes the
parsing timezone for the types be "local" timezone, but gives the ability to
override to a specific TimeZone if needed. Also, correctly normalizes the
java.sql.Time and java.sql.Date objects during conversion from different time
zones.
The branch name is "OLINGO-864" and also viewed here
https://github.com/apache/olingo-odata4/tree/OLINGO-864
> EdmDate and EdmTimeOfDay output in local timezone
> -------------------------------------------------
>
> Key: OLINGO-864
> URL: https://issues.apache.org/jira/browse/OLINGO-864
> Project: Olingo
> Issue Type: Bug
> Components: odata4-commons
> Affects Versions: (Java) V4 4.0.0-beta-01
> Reporter: Ramesh Reddy
> Assignee: Ramesh Reddy
> Priority: Critical
> Fix For: (Java) V4 4.2.0
>
>
> EdmDate and EdmTimeOfDay both assume GMT for incoming string values - however
> when the convert from Java objects to string they use the local/default
> Calendar.
> OData TC says parsing Date or Time should be exactly same in every time zone.
> This highlights the issue with EdmDate:
> TimeZone.setDefault(TimeZone.getTimeZone("GMT-1"));
> java.sql.Timestamp date = EdmDate.getInstance().valueOfString("2000-01-01",
> true, 4000, 0, 0, true, java.sql.Timestamp.class);
> assertEquals("1999-12-31 23:00:00.0", date.toString());
> String val = EdmDate.getInstance().valueToString(date, true, 4000, 0, 0,
> true);
> assertEquals("2000-01-01", date.toString());
> The last line fails because the date will be "1999-12-31" instead.
> Linked issue at https://issues.jboss.org/browse/TEIID-3938
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)