我在 Windows 机器上本地运行一个 .net core API 项目,本地时间是 utc +3。在请求返回的响应头中,结果是按照 utc + 0 返回的。这次
我在 Windows 机器上本地运行一个 .net core API 项目,本地时间是 utc +3。在请求返回的响应头中,结果是按照 utc + 0 返回的。
这个时间差异导致我在验证我的 jwt 令牌时出现错误,我永远无法验证它们。
例如:
当地时间:15:45:51
(kestrel).net 时间:12:45:51
我尝试了 TimeZoneInfo,但没有用。当我在指定令牌持续时间时提供 UTCnow 时,通过查看时差来进行交易对我来说毫无意义。我想在自己的时区查看和跟踪这些交易。
是否可以将.net 中的系统时间与我的本地时间匹配?
更新:
在此处输入图片描述
即使我使用 datetime.now 设置了到期日期,它也会接收值 utcnow 作为日期,并且根据该期限它永远不会有效。
我的活动时间是 16:24
var minute = Convert.ToInt32(_configuration["JwtSettings:ExpirationInMinutes"]);
token.Expiration = DateTime.Now.AddMinutes(minute);
JwtSecurityToken securityToken = new(
audience: _configuration["JwtSettings:Audience"],
issuer: _configuration["JwtSettings:Issuer"],
expires: token.Expiration,
notBefore: DateTime.Now,
signingCredentials: signingCredentials
);
如果我使用 UtcNow 确定此处的日期,它可以正常工作,但与当地时间有差异,但是它如何以及为什么能够将我提供的 Datetime.Now 值转换为它自己的 UtcNow?