Sometimes the timestamps delivered by %Y are not precise enough for debugging purposes.
# dtrace  \
 -n 'syscall::read:entry {printf("%Y", walltimestamp);}'
dtrace: description 'syscall::read:entry ' matched 1 probe
 CPU     ID                    FUNCTION:NAME
   0   6978                       read:entry 2021 Mar  9 15:07:37
   0   6978                       read:entry 2021 Mar  9 15:07:37
   0   6978                       read:entry 2021 Mar  9 15:07:37While this is still the default for compatibility reasons, you can now have much more precise timestamps with nanosecond resolution by using the -x timedecimals option. If you use this new option without an value it will give you the full precision
# dtrace -x timedecimals \
-n 'syscall::read:entry {printf("%Y", walltimestamp);}'
dtrace: description 'syscall::read:entry ' matched 1 probe
 CPU     ID                    FUNCTION:NAME
   0   6978                       read:entry 2021 Mar  9 15:13:46.140002400
   0   6978                       read:entry 2021 Mar  9 15:13:46.140002400
   0   6978                       read:entry 2021 Mar  9 15:13:46.140002400If you need less precise timestamps, you can control it by an optional value to -x timedecimals
# dtrace -x timedecimals=4 \
 -n 'syscall::read:entry {printf("%Y", walltimestamp);}'
dtrace: description 'syscall::read:entry ' matched 1 probe
 CPU     ID                    FUNCTION:NAME
   0   6978                       read:entry 2021 Mar  9 15:18:04.3700
   0   6978                       read:entry 2021 Mar  9 15:18:04.3700
   0   6978                       read:entry 2021 Mar  9 15:18:04.3700If you use -x timedecimals=0 if will use 9 digits, not zero. If you chose a value higher than 9, it will revert to 9 as well.
If you only need higher precision in select outputs of you dtrace script there is a second way to get more digits by specifying it in the format string:
# dtrace \
 -n 'syscall::read:entry {printf("%.6Y", walltimestamp);}'
dtrace: description 'syscall::read:entry ' matched 1 probe
 CPU     ID                    FUNCTION:NAME
   0   6978                       read:entry 2021 Mar  9 15:19:52.440769
   0   6978                       read:entry 2021 Mar  9 15:19:52.440769
   0   6978                       read:entry 2021 Mar  9 15:19:52.440769If you specify both, the precision specified in the format string has priority.
# dtrace -x timedecimals=4 \
 -n 'syscall::read:entry {printf("%.6Y", walltimestamp);}'
dtrace: description 'syscall::read:entry ' matched 1 probe
^C
 CPU     ID                    FUNCTION:NAME
   0   6978                       read:entry 2021 Mar  9 15:21:39.510012
   0   6978                       read:entry 2021 Mar  9 15:21:39.510012
   0   6978                       read:entry 2021 Mar  9 15:21:39.510012Despite having specified 4 decimals with -x timedecimals=4 it will use the number specified with "%.6Y".
 
         
                  