This content has been marked as final. Show 2 replies
Found the issue. Turns out, it's not that, nor is it a Flex related error whatsoever. Although, I bet that issue has a similar cause.
This took some detective work.
It's a Java problem, although it's not an error, just a matter of being outdated. In 2007 the goofy US gov decided to change when EDT started. My JDK (5.0) was downloaded in 2005. See the problem?
When Flex and Granite DS send a perfectly correct date (literal time, number of ms passed since Jan 1 1970) to Java, Java's Date implementation takes this value and calculates the day, month, time etc based on timezone. Since the timezone data it's using is outdated (not accounting for the 2007 change in the US), it gives wrong results--until after the day that (it thinks) daylight savings is supposed to start.
It's only one hour off (not a full day), but subtract one hour from March 9, 2009 0:00. You get March 8, 2009 23:00. Oops. Even if you don't care about the time (I don't), the day is still off after going back in time one hour. Der!
Adding to the mystery, if you do nothing to fix the problem and you tend to use dates close to the current date for your intial/dev testing, the problem vanishes after the 'old' DST start date, and doesn't re-appear until you use a date within that narrow range of days.
The fix is to get the latest release of whatever Java JDK you're using... simple.