I woud have expected a datetime-tz to be returned in ISO8601 format, which is:
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
Instead it comes back as:
2011-05-31 17:36:57:226 + 10:00
- The "T" is missing from between the Date and Time
- The separator between the seconds and decimal is a ":" rather than a "."
- The spaces in the timezone offset " + " don't help either.
Which is proving hard to parse into a Java Date or Joda DateTime. I am tempted to "edit" the string that is retuened but I can see problems with that in the future.
Likewise we need to send the value to Openedge as:
2011-06-01 09:37:59.213+10:00. If a DateTime is sent in ISO8601 format it is rejected by OpenEdge.
This is proving very problematic with Hibernate:
- If we define a DateTime field in an Entity as Date or Datetime it Inserts in OpenEdge OK but a read fails because Hibernate can't interpret the value that comes back form OpenEdge.
- We've had to define the Field as a String and develop conversion routines to format to and from OpenEdge.
Does anyone have any direct expereience with this that could help? We've spent a lot of time mucking around with something that should be simple.
Thanks
Steve
OpenEdge General - Forum
All Replies
Hi Steve,
pretty sure you actually want to let the timestamp as it is and don't lead hibernate into thinking it's a string
What error do you get is you set it as timestamp? I think the error comes from the dialect and you should replace
registerColumnType(Types.TIMESTAMP, "datetime-tz");
with
registerColumnType(Types.TIMESTAMP, "timestamp");
datetime-tz is the 4GL date type, the SQL equivalent for JDBC driver is timestamp... see if that makes any difference.
Progress, Telerik, Ipswitch and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See
Trademarks
for appropriate markings.
Privacy Center
•
License Agreement