I also thought, initially, that the dd referred to day. But instead, it meant "decimal." When I do this sort of thing, defining ASCII numbers and their precision, my approach is to use something more like hhmmss.ss.
Anyway, I also thought that TIMER provided seconds of the day to 2 decimal places. Instead, it appears to be 5 decimal places. Unless I'm looking at some sort of artifact.
Try this out. I didn't do any fancy formatting, using colons, but the results are simple enough. I deliberately did not round the INT functions, because in this type of use, usually, you don't to go past the whole hour, or the whole minute, or midnight, prematurely.
_TITLE "Test INT function for hours, minutes, seconds"
SCREEN _NEWIMAGE(120, 43, 0)
COLOR 1, 7
CLS
1 INPUT "Continue or exit (x to exit)"; cont$
IF cont$ = "x" THEN END
PRINT
TOD = TIMER
Hours = INT(TOD / 3600)
Minutes = INT((TOD - (Hours * 3600)) / 60)
Seconds = TOD - Hours * 3600 - Minutes * 60
PRINT "TOD seconds = "; TOD
PRINT "Hours = "; Hours; " Minutes = "; Minutes; " Seconds = "; Seconds
PRINT
GOTO 1
END
If you only want whole seconds, then change the Seconds line to:
Seconds = INT(TOD - Hours * 3600 - Minutes * 60)