Merge pull request #310 from faysalmehmood/#309_Unit_Test_Time_Zone_Tweak

#309 修复时区中断单元测试的差异
This commit is contained in:
click33 2022-09-19 10:11:20 +08:00 committed by GitHub
commit f99d9f53ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 6 deletions

View File

@ -1,6 +1,8 @@
package cn.dev33.satoken.listener;
import java.util.Date;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.stp.SaLoginModel;
@ -50,8 +52,9 @@ public class SaTokenListenerForConsolePrint implements SaTokenListener {
*/
@Override
public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) {
Date date = new Date(System.currentTimeMillis() + disableTime * 1000);
println("账号[" + loginId + "] " + service + " 服务被封禁,封禁等级=" + level + " (解封时间: " + SaFoxUtil.formatDate(date) + ")");
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis() + disableTime * 1000);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
println("账号[" + loginId + "] " + service + " 服务被封禁,封禁等级=" + level + " (解封时间: " + SaFoxUtil.formatDate(zonedDateTime) + ")");
}
/**

View File

@ -4,6 +4,8 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@ -106,6 +108,15 @@ public class SaFoxUtil {
public static String formatDate(Date date){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
/**
* 将日期格式化 yyyy-MM-dd HH:mm:ss
* @param zonedDateTime 日期
* @return 格式化后的时间
*/
public static String formatDate(ZonedDateTime zonedDateTime) {
return zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
/**
* 从集合里查询数据

View File

@ -1,8 +1,10 @@
package cn.dev33.satoken.core.util;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.junit.jupiter.api.Assertions;
@ -51,8 +53,10 @@ public class SaFoxUtilTest {
@Test
public void formatDate() {
String formatDate = SaFoxUtil.formatDate(new Date(1644328600364L));
Assertions.assertEquals(formatDate, "2022-02-08 21:56:40");
Instant instant = Instant.ofEpochMilli(1644328600364L);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("Asia/Shanghai"));
String formatDate = SaFoxUtil.formatDate(zonedDateTime);
Assertions.assertEquals(formatDate, "2022-02-08 21:56:40");
}
@Test