Some time ago I had a similar demand. I resolved it by batch-import with the help of TicketImportPlugin.
I used a custom field due_date of type text. Calculating POSIX (micro)second time stamp needed some custom formula, but worked sufficiently well. These numbers where imported, and I changed field type to date afterwards. Note that I used a patched Trac code, that entered Trac upstream for version 1.1dev meant for 1.2 now. Another option would be to use the DateFieldPlugin, that deals with date strings internally. But why bother, of you know, that you could use could get true custom time fields supported by Trac core right-away?
I did alter creation date/time too. This has been done by importing another custom field, and copying values back to the time column of ticket
db table. A bit of dirty hand-work on configuration and database, but once figured out it worked like a charm and I had 3000+ issues of many years imported with historically correct time stamps in a few minutes.