Recently needed to look into converting numeric values into zero padded strings, on account of needing to create a timestamp string that could be used in log statements in typescript. Generally speaking, I wanted to be able to create a string in the following format:
[2022-04-23 12:05:01:074]
Came up with the following code as a start:
| function pad(input:number):string{ | |
| return input < 10 ? "0" + input : "" + input; | |
| } |
It's good, converts a numeric value to a zero padded string. I can use this utility function as follows:
| const hours = 1; | |
| const minutes = 1; | |
| const seconds = 1; | |
| const time = `[${pad(hours)}:${pad(minutes)}:${pad(seconds)}]`); | |
| // resutls in string '[01:01:01]'; |
It's a pretty basic start, and this pad() routine would be sufficient if i wanted to pad month, day, hour, minute, second values. However this solution won't work well if I'm trying to create a timestamp value, since it will not help out when creating the millisecond string representation. The millisecond field will require 3 digit resolution, and the pad() utility above will only handle 2 digit values.
Thankfully the String object in JavaScript has a useful padStart() utility method that will come in handy ( String.prototype.padStart() ).
| function pad(input:number, digits:number):string{ | |
| let target = `${input}`; | |
| return target.padStart(digits,'0'); | |
| } |
I can now use this utility method as follows to generate a full timestamp value with milliseconds:
| const year = 2022; | |
| const month = 4; | |
| const day = 1; | |
| const hour = 7; | |
| const min = 3; | |
| const sec = 9; | |
| const millisec = 40; | |
| let timestamp = `[${year}-${pad(month,2)}-${pad(day,2)} ${pad(hour,2)}:${pad(min,2)}:${pad(sec,2)}:${pad(milisec,3)}]`; | |
| // timestamp value : '[2022-04-01 07:03:09:040]' |
No comments:
Post a Comment