Timestamps getting written in UTC during burn



Using : NeroAPI, Visual Studio .NET 2003, the NeroAPI is called from within a C++ mixed mode DLL. Using msvcrt.dll .

I’m seeing some strange things happening with timestamps when files and directories are getting burnt to CD. Burning is done by calling NeroCreateIsoTrackEx, then NeroBurn, for : NERO_ISO_AUDIO_CD, with options : NBF_WRITE | NBF_CLOSE_SESSION.

  1. when burning new directories, the directory on the CD ends up with the UTC date/time equivalent of my local time. eg. if I burn at 11:00 am on Monday, the directory gets a timestamp of 1:00am Monday (I am in Sydney, Australia, which is GMT+10 hours). New files are burnt with the correct file timestamp. As a test, I even tried setting NERO_ISO_ITEM.entryTime, but that just seems to get ignored by Nero for new files/directories.

  2. when burning multi-session, the timestamps reported in entryTime, from NERO_ISO_ITEM nodes fetched from NeroImportIsoTrackEx, seem to be in UTC time. eg. if Windows Explorer tells me that the file on the CD has a timestamp of : Tuesday 14:00, then the fetched “entryTime” from NeroImportIsoTrackEx for this file is Tuesday 4:00. If I don’t manually adjust entryTime for this file back to local time (14:00), then during burning, the file entry gets written to the CD with a new timestamp of Tuesday 4:00 (so everytime I import a session and write it out in a new session, the files and directories all loose 10 hours in my timezone).

Note that everything else seems to be normal - the files get created correctly etc, just the timestamps are strange.

As you can see, this is all very strange !

Any ideas ?


With NeroCmd I also see strange things. If I burn an ISO CD-R from a tree of files on hard disk, all the directories recorded have today’s date and all the files have a time offset of some hours (all the same). The offset changes if you set an environment variable TZ=2 or another number.