Merge pull request '【OpenApi】增加开放接口时间戳自动判断秒和毫秒的转换' (#132) from liumaotong/Admin.NET.Pro:main into main

Reviewed-on: http://101.43.53.74:3000/Admin.NET/Admin.NET.Pro/pulls/132
This commit is contained in:
zuohuaijun 2024-09-09 14:09:51 +08:00
commit fd3105bc3c
2 changed files with 21 additions and 1 deletions

View File

@ -67,7 +67,7 @@ public sealed class SignatureAuthenticationHandler : AuthenticationHandler<Signa
if (!long.TryParse(timestampStr, out var timestamp))
return await AuthenticateResultFailAsync("timestamp 值不合法");
var requestDate = DateTimeUtil.ToLocalTimeDateBySeconds(timestamp);
var requestDate = DateTimeUtil.ConvertUnixTime(timestamp);
#if NET6_0
var utcNow = Clock.UtcNow;

View File

@ -8,6 +8,26 @@ namespace Admin.NET.Core;
public class DateTimeUtil
{
/// <summary>
/// 根据unix时间戳的长度自动判断是秒还是以毫秒为单位
/// </summary>
/// <param name="unixTime"></param>
/// <returns></returns>
public static DateTime ConvertUnixTime(long unixTime)
{
// 判断时间戳长度
bool isMilliseconds = unixTime > 9999999999;
if (isMilliseconds)
{
return DateTimeOffset.FromUnixTimeMilliseconds(unixTime).ToLocalTime().DateTime;
}
else
{
return DateTimeOffset.FromUnixTimeSeconds(unixTime).ToLocalTime().DateTime;
}
}
/// <summary>
/// 获取开始时间
/// </summary>