ソースを参照

1.添加时间获取工具类。

20241218TB223FC(测试jar包)
wangwanlei 3ヶ月前
コミット
51aaf8b188
1個のファイルの変更52行の追加0行の削除
  1. 52
    0
      app/src/main/java/com/xhly/manageapp/utils/SystemClock.java

+ 52
- 0
app/src/main/java/com/xhly/manageapp/utils/SystemClock.java ファイルの表示

@@ -0,0 +1,52 @@
1
+package com.xhly.manageapp.utils;
2
+
3
+import java.text.SimpleDateFormat;
4
+import java.util.concurrent.Executors;
5
+import java.util.concurrent.ScheduledExecutorService;
6
+import java.util.concurrent.TimeUnit;
7
+import java.util.concurrent.atomic.AtomicLong;
8
+
9
+/**
10
+ * @author ywx
11
+ * @classname SystemClock
12
+ * @description todo
13
+ * @date 2022/11/9 20:31
14
+ **/
15
+public class SystemClock {
16
+    private static final SystemClock MILLIS_CLOCK = new SystemClock(1);
17
+    private final long precision;
18
+    private final AtomicLong now;
19
+
20
+    private SystemClock(long precision) {
21
+        this.precision = precision;
22
+        now = new AtomicLong(System.currentTimeMillis());
23
+        scheduleClockUpdating();
24
+    }
25
+
26
+    public static SystemClock millisClock() {
27
+        return MILLIS_CLOCK;
28
+    }
29
+
30
+    private void scheduleClockUpdating() {
31
+        ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(runnable -> {
32
+            Thread thread = new Thread(runnable, "system.clock");
33
+            thread.setDaemon(true);
34
+            return thread;
35
+        });
36
+        scheduler.scheduleAtFixedRate(() -> now.set(System.currentTimeMillis()), precision, precision, TimeUnit.MILLISECONDS);
37
+    }
38
+
39
+    public long now() {
40
+        return now.get();
41
+    }
42
+
43
+    public static int getSecondTimestamp(){
44
+        String timestamp = String.valueOf(SystemClock.millisClock().now()/1000);
45
+        return Integer.valueOf(timestamp);
46
+    }
47
+
48
+    public static String getDateString(Long time){
49
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月d日 HH:mm:ss");
50
+        return dateFormat.format(time);
51
+    }
52
+}

読み込み中…
キャンセル
保存