trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserDataController.java
@@ -15,6 +15,8 @@ import com.yami.trading.common.constants.Constants; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.util.DateUtil; import com.yami.trading.common.util.DateUtils; import com.yami.trading.common.util.IPHelper; import com.yami.trading.security.common.manager.PasswordManager; import com.yami.trading.security.common.util.SecurityUtils; @@ -30,7 +32,11 @@ import javax.validation.Valid; import java.text.MessageFormat; import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @@ -80,6 +86,16 @@ userDataDto.setUserRegip(userDataDto.getUserLastip()); userDataDto.setUserLevel(userDataDto.getUserLevel() / 10); if (userDataDto.getUserLasttime() != null) { String time = DateUtil.convertToZonedDateTime(userDataDto.getUserLasttime()); Date toDate = DateUtil.stringToDate(time, "yyyy-MM-dd HH:mm:ss"); userDataDto.setUserLasttime(toDate); } if (userDataDto.getCreateTime() != null) { String time = DateUtil.convertToZonedDateTime(userDataDto.getCreateTime()); Date toDate = DateUtil.stringToDate(time, "yyyy-MM-dd HH:mm:ss"); userDataDto.setCreateTime(toDate); } } return Result.ok(page); } trading-order-common/src/main/java/com/yami/trading/common/util/DateUtil.java
@@ -1,7 +1,13 @@ package com.yami.trading.common.util; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -894,4 +900,28 @@ public static long stringToMillSeconds(String dateString){ return stringToDate(dateString,java.sql.Timestamp.class).getTime(); } /** * 把美国时区时间转为德国时区时间 * @param date * @return */ public static String convertToZonedDateTime(Date date){ // 1. 将Date转换为UTC瞬时点(Instant) Instant utcInstant = date.toInstant(); // 2. 绑定原始时区:明确该时间是纽约时区的时间 ZoneId newYorkZone = ZoneId.of("America/New_York"); ZonedDateTime newYorkZonedTime = ZonedDateTime.ofInstant(utcInstant, newYorkZone); // 3. 转换为德国时区(Europe/Berlin,自动处理夏令时) ZoneId berlinZone = ZoneId.of("Europe/Berlin"); ZonedDateTime berlinZonedTime = newYorkZonedTime.withZoneSameInstant(berlinZone); // 4. 格式化输出(例如:yyyy-MM-dd HH:mm:ss) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return berlinZonedTime.format(formatter); } } trading-order-service/src/main/resources/mapper/UserMapper.xml
@@ -117,7 +117,7 @@ </if> <if test="userName!=null and userName!=''"> and u.user_name=#{userName} or u.user_code=#{userName} and (u.user_name=#{userName} or u.user_code=#{userName}) </if> <if test="userMail!=null and userMail!=''">