import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Random;
public class TimestampPerformanceTest {
public static void main(String[] args) {
int iterations = 1000000;
long startTime, endTime;
// Test 1: Instant (recommended for most cases)
startTime = System.nanoTime();
for (int i = 0; i < iterations; i++) {
Instant instant = Instant.now(); // Get current instant
}
endTime = System.nanoTime();
long instantTime = endTime - startTime;
System.out.println("Instant Time: " + instantTime + " ns");
// Test 2: LocalDateTime (with timezone)
startTime = System.nanoTime();
for (int i = 0; i < iterations; i++) {
LocalDateTime now = LocalDateTime.now();
}
endTime = System.nanoTime();
long localDateTimeTime = endTime - startTime;
System.out.println("LocalDateTime Time: " + localDateTimeTime + " ns");
// Test 3: LocalDateTime (with explicit timezone)
startTime = System.nanoTime();
for (int i = 0; i < iterations; i++) {
ZoneId zoneId = ZoneId.of("America/Los_Angeles"); // Example timezone
LocalDateTime nowWithZone = LocalDateTime.now(zoneId);
}
endTime = System.nanoTime();
long localDateTimeWithZoneTime = endTime - startTime;
System.out.println("LocalDateTime with Zone Time: " + localDateTimeWithZoneTime + " ns");
//Test 4: Formatting timestamps
startTime = System.nanoTime();
for(int i = 0; i < iterations; i++){
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
}
endTime = System.nanoTime();
long formattingTime = endTime - startTime;
System.out.println("Formatting Time: " + formattingTime + " ns");
}
}
Add your comment