From 14714b3978f47ac1c6387d141996cc544ef56612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 17 Jul 2025 19:04:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=97=B6=E9=97=B4=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8E=BB=E6=8E=89=E6=97=B6=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/qyft/ms/app/controller/SystemController.java | 7 +++---- src/main/java/com/qyft/ms/app/service/SystemService.java | 15 +-------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/qyft/ms/app/controller/SystemController.java b/src/main/java/com/qyft/ms/app/controller/SystemController.java index ab59732..708df6f 100644 --- a/src/main/java/com/qyft/ms/app/controller/SystemController.java +++ b/src/main/java/com/qyft/ms/app/controller/SystemController.java @@ -45,16 +45,15 @@ public class SystemController { @Operation(summary = "设置系统时间") @PostMapping("/set-datetime") public Result setDatetime(@Valid @RequestBody TimeSetDTO timeSetDTO) { - systemService.setSystemTime(timeSetDTO.getEpochMilli(), timeSetDTO.getZone()); + systemService.setSystemTime(timeSetDTO.getEpochMilli()); return Result.success(); } @Operation(summary = "获取系统时间") @GetMapping("/get-datetime") - public Result getDatetime() { + public Result getDatetime() { long epochMilli = systemService.getCurrentEpochMilli(); - ZoneId systemZone = ZoneId.systemDefault(); - return Result.success(new TimeResponseVO(epochMilli, systemZone)); + return Result.success(new TimeResponseVO(epochMilli)); } diff --git a/src/main/java/com/qyft/ms/app/service/SystemService.java b/src/main/java/com/qyft/ms/app/service/SystemService.java index 3c584e0..dd562d5 100644 --- a/src/main/java/com/qyft/ms/app/service/SystemService.java +++ b/src/main/java/com/qyft/ms/app/service/SystemService.java @@ -27,23 +27,10 @@ public class SystemService { * 将系统时区(可选)和系统时间(必选)一起设定 * * @param epochMilli UTC 毫秒时间戳 - * @param zone 可选 IANA 时区 ID;若为 null 或空,则不修改时区 */ - public void setSystemTime(long epochMilli, String zone) { - // 1) 确定要设置的时区:客户端没传就用“Asia/Shanghai” - String effectiveZone = (zone != null && !zone.isBlank()) - ? zone - : "Asia/Shanghai"; - - // 2) 先修改系统时区(总是执行) - runCommand("timedatectl", "set-timezone", effectiveZone); - - // 3) 再用 date -s @<秒数> 方式设置系统时间 + public void setSystemTime(long epochMilli) { long epochSecond = epochMilli / 1_000; runCommand("date", "-s", "@" + epochSecond); - - - // 4) 将系统时钟写入到硬件时钟(RTC) runCommand("hwclock", "--systohc"); }