1. import java.time.Instant;
  2. import java.time.LocalDateTime;
  3. import java.time.ZoneId;
  4. import java.time.format.DateTimeFormatter;
  5. import java.util.Random;
  6. public class TimestampPerformanceTest {
  7. public static void main(String[] args) {
  8. int iterations = 1000000;
  9. long startTime, endTime;
  10. // Test 1: Instant (recommended for most cases)
  11. startTime = System.nanoTime();
  12. for (int i = 0; i < iterations; i++) {
  13. Instant instant = Instant.now(); // Get current instant
  14. }
  15. endTime = System.nanoTime();
  16. long instantTime = endTime - startTime;
  17. System.out.println("Instant Time: " + instantTime + " ns");
  18. // Test 2: LocalDateTime (with timezone)
  19. startTime = System.nanoTime();
  20. for (int i = 0; i < iterations; i++) {
  21. LocalDateTime now = LocalDateTime.now();
  22. }
  23. endTime = System.nanoTime();
  24. long localDateTimeTime = endTime - startTime;
  25. System.out.println("LocalDateTime Time: " + localDateTimeTime + " ns");
  26. // Test 3: LocalDateTime (with explicit timezone)
  27. startTime = System.nanoTime();
  28. for (int i = 0; i < iterations; i++) {
  29. ZoneId zoneId = ZoneId.of("America/Los_Angeles"); // Example timezone
  30. LocalDateTime nowWithZone = LocalDateTime.now(zoneId);
  31. }
  32. endTime = System.nanoTime();
  33. long localDateTimeWithZoneTime = endTime - startTime;
  34. System.out.println("LocalDateTime with Zone Time: " + localDateTimeWithZoneTime + " ns");
  35. //Test 4: Formatting timestamps
  36. startTime = System.nanoTime();
  37. for(int i = 0; i < iterations; i++){
  38. LocalDateTime now = LocalDateTime.now();
  39. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  40. String formattedDateTime = now.format(formatter);
  41. }
  42. endTime = System.nanoTime();
  43. long formattingTime = endTime - startTime;
  44. System.out.println("Formatting Time: " + formattingTime + " ns");
  45. }
  46. }

Add your comment