You can only derive the time from the cron rule if the rule states a single specific time. You can't derive the time from either of
0 * * * *
* 4 * * *
...since the first is at the top of the hour but you don't know the hour, the second is in the fourth hour but you don't know the minute.
You can get the time from
0 4 * * *
...but why bother? You already know the time -- it's 04:00, else the macro wouldn't have triggered!
That's not to say you shouldn't get the time by token at execution time rather than hard-coding it -- indeed, that's often the best method. But be clear in your own mind about why you are doing it that way.