Starting from a such a timestamp, it's a fairly standard route to convert it to text, I'm sure there are numerous implementations available on internet. At some point I will do the same. We really don't need Espressif for that.
SNTP itself uses microsecond precision, but if we want to "see" it, we'll have to make our own SNTP implementation (which, as said, I was going to do anyway). But in which case do you actually care for sub-second exact time stamps? I can imagine you'd want to have the internal clock stepping in milliseconds or even microseconds, but need it to be exact equal to "wall clock" time? My code does something like that, the base is the time in seconds from SNTP and from there it increments in milliseconds. Which will deviate from wall clock sooner or later and that is why SNTP should be run frequently and not, like Espressif does, once.