How to round off the current timestamp in milliseconds to seconds?
If this is the current timestamp in milliseconds I have -
1384393612958
The if I am rounding off to nearest second then will it be like this?
Time in MS rounded off to nearest Second = 1384393612000
I might need to do this both in Java and C++.
If you are using Python:
old_number = 1384393612958
new_number = 1000 * (old_number / 1000)
print new_number
Basically you want to use an integer number, divide by one thousand (to shave off the milli-seconds), and then multiple by thousand to get the ms value rounded to seconds.
In Java you can use Calendar to something like this:
Calendar cal = Calendar.getInstance().setTimeInMillis(millisec);
int seconds = cal.get(Calendar.SECONDS);
Alternatively (and can work for C++ too) you can do:
int sec = ((millisec + 500) / 1000);
adding 500 ms allows you to round the number properly.
Instant.ofEpochMilli( 1_384_393_612_958L )
.truncatedTo( ChronoUnit.SECONDS )
.toEpochMilli()
The modern approach in Java uses the java.time classes.
The Instant
class represents a point on the timeline in UTC with a resolution of nanoseconds.
Instant instant = Instant.ofEpochMilli( 1_384_393_612_958L ) ;
Instant instantTrunc = instant.truncatedTo( ChronoUnit.SECONDS ) ;
long millis = instantTrunc.toEpochMilli() ;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With