ZonedDateTest.java 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package net.ranides.assira.time;
  2. import org.junit.Test;
  3. import java.time.LocalDate;
  4. import java.time.ZoneId;
  5. import java.time.ZonedDateTime;
  6. import static org.junit.Assert.*;
  7. public class ZonedDateTest {
  8. @Test
  9. public void testConstructor() {
  10. ZonedDate date = ZonedDate.of(DateTimeZones.PL, LocalDate.of(2020, 11, 28));
  11. assertEquals("2020-11-28 [Europe/Warsaw]", date.toString());
  12. assertEquals(DateTimeZones.PL, ZoneId.from(date));
  13. }
  14. @Test
  15. public void testEpochSeconds() {
  16. ZonedDateTime datetime1 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 20, 45, 0);
  17. ZonedDateTime datetime2 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 20, 45, 0);
  18. ZonedDateTime datetime3 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 23, 45, 0);
  19. ZonedDate date1 = ZonedDate.of(DateTimeUtils.withZone(datetime1, DateTimeZones.UTC));
  20. ZonedDate date2 = ZonedDate.of(DateTimeUtils.withZone(datetime2, DateTimeZones.PL));
  21. ZonedDate date3 = ZonedDate.of(DateTimeUtils.withZone(datetime3, DateTimeZones.PL));
  22. assertEquals("2020-11-20 [UTC]", date1.toString());
  23. assertEquals("2020-11-20 [Europe/Warsaw]", date2.toString());
  24. assertEquals("2020-11-21 [Europe/Warsaw]", date3.toString());
  25. assertEquals(1605830400L, date1.withMin().toEpochSecond());
  26. assertEquals(1605826800L, date2.withMin().toEpochSecond());
  27. assertEquals(1605913200L, date3.withMin().toEpochSecond());
  28. ZonedDate date4 = ZonedDate.of(DateTimeZones.UTC, datetime1.toLocalDate());
  29. ZonedDate date5 = ZonedDate.of(DateTimeZones.PL, datetime2.toLocalDate());
  30. ZonedDate date6 = ZonedDate.of(DateTimeZones.PL, datetime3.toLocalDate());
  31. assertEquals("2020-11-20 [UTC]", date4.toString());
  32. assertEquals("2020-11-20 [Europe/Warsaw]", date5.toString());
  33. assertEquals("2020-11-20 [Europe/Warsaw]", date6.toString());
  34. assertEquals(1605830400L, date4.withMin().toEpochSecond());
  35. assertEquals(1605826800L, date5.withMin().toEpochSecond());
  36. assertEquals(1605826800L, date6.withMin().toEpochSecond());
  37. }
  38. @Test
  39. public void testEpochDay() {
  40. ZonedDateTime datetime1 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 20, 45, 0);
  41. ZonedDateTime datetime2 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 20, 45, 0);
  42. ZonedDateTime datetime3 = DateTimeLiteral.datetimeUtc(2020, 11, 20, 23, 45, 0);
  43. ZonedDate date1 = ZonedDate.of(DateTimeUtils.withZone(datetime1, DateTimeZones.UTC));
  44. ZonedDate date2 = ZonedDate.of(DateTimeUtils.withZone(datetime2, DateTimeZones.PL));
  45. ZonedDate date3 = ZonedDate.of(DateTimeUtils.withZone(datetime3, DateTimeZones.PL));
  46. assertEquals("2020-11-20 [UTC]", date1.toString());
  47. assertEquals("2020-11-20 [Europe/Warsaw]", date2.toString());
  48. assertEquals("2020-11-21 [Europe/Warsaw]", date3.toString());
  49. assertEquals(18586, date1.toEpochDay());
  50. assertEquals(18586, date2.toEpochDay());
  51. assertEquals(18587, date3.toEpochDay());
  52. ZonedDate date4 = ZonedDate.of(DateTimeZones.UTC, datetime1.toLocalDate());
  53. ZonedDate date5 = ZonedDate.of(DateTimeZones.PL, datetime2.toLocalDate());
  54. ZonedDate date6 = ZonedDate.of(DateTimeZones.PL, datetime3.toLocalDate());
  55. assertEquals("2020-11-20 [UTC]", date4.toString());
  56. assertEquals("2020-11-20 [Europe/Warsaw]", date5.toString());
  57. assertEquals("2020-11-20 [Europe/Warsaw]", date6.toString());
  58. assertEquals(18586, date4.toEpochDay());
  59. assertEquals(18586, date5.toEpochDay());
  60. assertEquals(18586, date6.toEpochDay());
  61. }
  62. }