[QFJ-250] Expiry Time UTC Conversion. Created: 27/Sep/07 Updated: 06/Oct/07 Resolved: 06/Oct/07 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | None |
Affects Version/s: | 1.1.0 |
Fix Version/s: | None |
Type: | Other | Priority: | Default |
Reporter: | Parag Mehta | Assignee: | Steve Bate |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Environment: |
all |
Description |
Question about expiry time problem. We set it to UTC (today: 00:00:00) and pass it down to ExpiryTime constructor. Date date = (09-26-2007: 00:00:00); The problem is when it's send over to FIX, the time zone diff is somehow added to the converted string, e.g.: 22:00 below and the main problem: today becomes today-1 (9/26 becomes 9/25). Is this correct? From all the documentation I read, it seems if UTC is passed, no conversion should happen and the date to string conversion should keep it 09-26:00:00 all along. It would also possibly help to have another ExpiryTime(String) constructor; since FIX UTC timestamp is eventually a string. Thanks. |
Comments |
Comment by Steve Bate [ 28/Sep/07 ] |
Are you sure you are creating the date in the correct time zone? The following unit tests passes... public void testUtcFieldFormatting() { Calendar c = new GregorianCalendar(TimeZone.getTimeZone("UTC")); c.set(2008, Calendar.JANUARY, 1, 0, 0, 0); c.set(Calendar.MILLISECOND, 0); ExpireTime expireTime = new ExpireTime(c.getTime()); Message m = new Message(); m.setField(expireTime); assertEquals("9=26126=20080101-00:00:00.00010=193", m.toString()); }As for your question about passing a String. You can create a StringField directly and use that |