On Wed, Jul 23, 2008 at 11:29 AM, Charles Day <[EMAIL PROTECTED]> wrote:
> Leaving aside the talk of new features, I would like to propose an initial > set of changes that will squash the current bug caused by a change to the OS > timezone without introducing any new features. New features can be added > later on of course. > > The goals are: > -Prevent changes to the OS time zone from causing GnuCash problems. > -Leave the file format syntactically unchanged. > -Leave the file format backwards compatible. > -Leave the door open for future time entry features by continuing to use > timestamps internally. > > Here's how I propose this would work: > 1. For backward compatibility, the current posting date format of > "YYYY-MM-DD HH:MM:SS" followed by the current OS timezone at write time > would not change. > 2. When reading each transaction from a file, if the "HH:MM:SS" part is > equal to "00:00:00" then the transaction is not bug affected and the > YYYY-MM-DD part contains the date the originally entered in the register. > 3. When reading a file, if the "HH:MM:SS" part is NOT equal to "00:00:00" > then the transaction is bug affected and must be reviewed to determine the > date the user originally entered in the register. In some cases GnuCash > would need to ask the user some questions to determine how to do the > adjustment, but in most cases I suspect it would not. (I won't go into the > algorithm for the moment.) > 4. Once the date originally entered in the register has been determined, > GnuCash converts that date into a timestamp by imposing a default time of > day of 12:00 (the actual time doesn't matter as long as it is fixed) and a > fixed time zone of UTC. > 5. Now that the file has been loaded, the user does whatever they want in > the GUI, completely unaware of what time of day or time zone GnuCash is > using internally. > 6. When the file is saved, GnuCash converts the timestamp back into the > originally entered date (which it can do because the time of day and time > zone are fixed at 12:00 and UTC on all transactions). > 7. GnuCash saves in the format "YYYY-MM-DD 00:00:00", followed by the > current, OS-determined local time zone. The YYYY-MM-DD part contains is the > originally entered date, . > > Unless I have miscalculated, this meets the four goals stated above. > > Comments? > LOL... now I can't even count to 7! Above is a corrected version. > > Cheers, > Charles > _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel