I don't think using a combination of date and time is the right one, since the smallest unit you can get is millisecond.
I would go with GUID. But if you insist that it has to be done with time, than I think a combination of
GetTickCount[
^] (beware of its 49.7 days limitation or better
GetTickCount64[
^]) and a
rand()[
^] would be sufficient.