Prechádzať zdrojové kódy

Change signature of set method within SystemTime class

Patrick-Christopher Mattulat 1 rok pred
rodič
commit
3d8086d52a

+ 0 - 11
src/main/java/com/lynarstudios/ls/std/time/SystemTime.java

@@ -1,11 +0,0 @@
-package com.lynarstudios.ls.std.time;
-
-public class SystemTime
-{
-  public boolean set(long _timeStamp)
-  {
-    return systemTimeJni.set(_timeStamp);
-  }
-
-  private static final SystemTimeJni systemTimeJni = new SystemTimeJni();
-}

+ 24 - 0
src/main/java/com/lynarstudios/ls/std/time/systemtime/LocalDateTimeConverter.java

@@ -0,0 +1,24 @@
+package com.lynarstudios.ls.std.time.systemtime;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+
+public class LocalDateTimeConverter
+{
+  public LocalDateTimeConverter()
+  {
+    this.zoneId = ZoneId.systemDefault();
+  }
+
+  public LocalDateTimeConverter(ZoneId zoneId)
+  {
+    this.zoneId = zoneId;
+  }
+
+  public long toUnixTimeStamp(LocalDateTime localDateTime)
+  {
+    return localDateTime.atZone(this.zoneId).toEpochSecond();
+  }
+
+  private final ZoneId zoneId;
+}

+ 19 - 0
src/main/java/com/lynarstudios/ls/std/time/systemtime/SystemTime.java

@@ -0,0 +1,19 @@
+package com.lynarstudios.ls.std.time.systemtime;
+
+import java.time.LocalDateTime;
+
+public class SystemTime
+{
+  public SystemTime()
+  {
+    this.systemTimeJni = new SystemTimeJni();
+  }
+
+  public boolean set(LocalDateTime localDateTime)
+  {
+    return systemTimeJni.set(this.converter.toUnixTimeStamp(localDateTime));
+  }
+
+  private final SystemTimeJni systemTimeJni;
+  private final LocalDateTimeConverter converter = new LocalDateTimeConverter();
+}

+ 3 - 1
src/main/java/com/lynarstudios/ls/std/time/SystemTimeJni.java → src/main/java/com/lynarstudios/ls/std/time/systemtime/SystemTimeJni.java

@@ -1,4 +1,6 @@
-package com.lynarstudios.ls.std.time;
+package com.lynarstudios.ls.std.time.systemtime;
+
+import com.lynarstudios.ls.std.time.Library;
 
 public class SystemTimeJni
 {

+ 18 - 0
src/test/java/com/lynarstudios/ls/std/time/systemtime/LocalDateTimeConverterTest.java

@@ -0,0 +1,18 @@
+package com.lynarstudios.ls.std.time.systemtime;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.time.LocalDateTime;
+
+class LocalDateTimeConverterTest {
+
+  @Test
+  void toUnixTimeStamp()
+  {
+    LocalDateTimeConverter converter = new LocalDateTimeConverter();
+    LocalDateTime localDateTime = LocalDateTime.of(2030, 6, 1, 10, 55, 13);
+
+    Assertions.assertEquals(1906534513L, converter.toUnixTimeStamp(localDateTime));
+  }
+}