C# - 从 Int 值中获取日期
C# - Get Date from Int Value
美好的一天,
我正在尝试检查令牌到期日期是否已过期。我正在使用 JWT 生成我的令牌。如果我的令牌仍然有效,我可以使用此代码检查我的 javascript 环境。
if (decodedToken.exp < new Date().getTime() / 1000) {
alert("Session expired);
}
// decodedToken.exp returns a value like "1556797243"
但我的问题是,如果令牌已经过期,我不知道如何使用 C# 代码进行验证。
我试过这样的东西,
// suppose I have a value of "1556797243"
var expirationDate = DateTime.ParseExact(expiration, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
但是不行。
您可以使用此函数将 unixTime
转换为 DateTime
public static class DateUtil
{
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
public static DateTime FromUnixTime(long unixTime)
{
return Epoch.AddMilliseconds(unixTime).ToLocalTime();
}
}
var expirationDate = DateUtil.FromUnixTime(yourtime);
.NET 有一个内置的方法来解析 Unix 时间戳,但它是在 DateTimeOffset 上,而不是 DateTime,正如您可能期望的那样:
var expirationTime = DateTimeOffset.FromUnixTimeSeconds(expiration).DateTime;
如果 expiration 是一个字符串,您需要先将其解析为长字符串:
var expirationTime = DateTimeOffset.FromUnixTimeSeconds(long.Parse(expiration)).DateTime;
美好的一天,
我正在尝试检查令牌到期日期是否已过期。我正在使用 JWT 生成我的令牌。如果我的令牌仍然有效,我可以使用此代码检查我的 javascript 环境。
if (decodedToken.exp < new Date().getTime() / 1000) {
alert("Session expired);
}
// decodedToken.exp returns a value like "1556797243"
但我的问题是,如果令牌已经过期,我不知道如何使用 C# 代码进行验证。
我试过这样的东西,
// suppose I have a value of "1556797243"
var expirationDate = DateTime.ParseExact(expiration, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
但是不行。
您可以使用此函数将 unixTime
转换为 DateTime
public static class DateUtil
{
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
public static DateTime FromUnixTime(long unixTime)
{
return Epoch.AddMilliseconds(unixTime).ToLocalTime();
}
}
var expirationDate = DateUtil.FromUnixTime(yourtime);
.NET 有一个内置的方法来解析 Unix 时间戳,但它是在 DateTimeOffset 上,而不是 DateTime,正如您可能期望的那样:
var expirationTime = DateTimeOffset.FromUnixTimeSeconds(expiration).DateTime;
如果 expiration 是一个字符串,您需要先将其解析为长字符串:
var expirationTime = DateTimeOffset.FromUnixTimeSeconds(long.Parse(expiration)).DateTime;