From 7052c78ee93e552ed061c830a6bddc06acabd147 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 11 Jul 2025 16:36:23 +0800
Subject: [PATCH] 时间

---
 src/main/java/project/futures/internal/FuturesOrderServiceImpl.java      |    6 +++---
 src/main/java/project/contract/internal/ContractOrderServiceImpl.java    |    5 +++--
 src/main/java/project/web/api/RealtimeController.java                    |   27 +++++++++++++++++++++------
 src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java |    2 +-
 4 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
index 64965b0..d8f6f08 100644
--- a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
@@ -478,8 +478,9 @@
 	}
 
 	public Map<String, Object> bulidOne(ContractOrder order) {
-		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss  a", Locale.ENGLISH);
-		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
+//		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss  a", Locale.ENGLISH);
+		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
 		DecimalFormat df = new DecimalFormat("#.##");
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("order_no", order.getOrder_no());
diff --git a/src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java b/src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java
index e0e8871..4c8eb33 100644
--- a/src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java
+++ b/src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java
@@ -82,7 +82,7 @@
 		}
 		DecimalFormat df_symbol = new DecimalFormat(decimals);
 		df_symbol.setRoundingMode(RoundingMode.FLOOR);// 向下取整
-		TimeZone timeZone = TimeZone.getTimeZone("America/New_York");
+		TimeZone timeZone = TimeZone.getTimeZone("Europe/Berlin");
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 		sdf.setTimeZone(timeZone);
 		DecimalFormat df = new DecimalFormat("#.##");
diff --git a/src/main/java/project/futures/internal/FuturesOrderServiceImpl.java b/src/main/java/project/futures/internal/FuturesOrderServiceImpl.java
index 5be49bb..da2b958 100644
--- a/src/main/java/project/futures/internal/FuturesOrderServiceImpl.java
+++ b/src/main/java/project/futures/internal/FuturesOrderServiceImpl.java
@@ -558,8 +558,8 @@
 		System.out.println(simpleDateFormat.format(new Date()));
 	}
 	public Map<String, Object> bulidOne(FuturesOrder order) {
-		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss  a", Locale.ENGLISH);
-		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
+		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
 		FuturesOrder order_cache = (FuturesOrder) redisHandler.get(FuturesRedisKeys.FUTURES_SUBMITTED_ORDERNO + order.getOrder_no());
 		if (order_cache != null) order = order_cache;
 		
@@ -577,7 +577,7 @@
 		
 		DecimalFormat df_symbol = new DecimalFormat(decimals);
 		df_symbol.setRoundingMode(RoundingMode.FLOOR);// 向下取整
-		TimeZone timeZone = TimeZone.getTimeZone("America/New_York");
+		TimeZone timeZone = TimeZone.getTimeZone("Europe/Berlin");
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 		sdf.setTimeZone(timeZone);
 		DecimalFormat df = new DecimalFormat("#.##");
diff --git a/src/main/java/project/web/api/RealtimeController.java b/src/main/java/project/web/api/RealtimeController.java
index 042ab1d..b0bf725 100644
--- a/src/main/java/project/web/api/RealtimeController.java
+++ b/src/main/java/project/web/api/RealtimeController.java
@@ -3,6 +3,11 @@
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -99,13 +104,23 @@
 			Map<String, Object> map = new HashMap<String, Object>();
 			map.put("symbol", realtime.getSymbol());
 			map.put("ts", realtime.getTs());
-			long currentTime = 1744341503535L; // 确保 currentTime 是 long 类型
-			TimeZone timeZone = TimeZone.getTimeZone("America/New_York");
-			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-			sdf.setTimeZone(timeZone);
-			Date date = new Date(currentTime);
-			String formattedTime = sdf.format(date);
+			String currentTime = realtime.getCurrent_time(); // "yyyy-MM-dd HH:mm:ss"
+
+			// 1. 解析原始时间(假设是 UTC 时间)
+			DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			LocalDateTime localDateTime = LocalDateTime.parse(currentTime, inputFormatter);
+
+			// 2. 转换为柏林时区的时间
+			ZoneId berlinZone = ZoneId.of("Europe/Berlin");
+			ZonedDateTime utcTime = localDateTime.atZone(ZoneOffset.UTC); // 假设原时间是 UTC
+			ZonedDateTime berlinTime = utcTime.withZoneSameInstant(berlinZone);
+
+			// 3. 格式化为字符串
+			DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			String formattedTime = berlinTime.format(outputFormatter);
+
 			map.put("current_time", formattedTime);
+
 			Item item1 = this.itemService.cacheBySymbol(realtime.getSymbol(), false);
 			map.put("name", item1.getName());
 			map.put("change_ratio", realtime.getChange_ratio());

--
Gitblit v1.9.3