如何将 tokenModel.ExpiresIn 转换为秒

how to convert tokenModel.ExpiresIn into seconds

我有 ExpiresOn 的 Azure AD 令牌,它是一种 DateTimeOffset。我的模型class在下面,

public class AadToken
{
    public string Value { get; set; }
    public DateTimeOffset ExpiresIn { get; set; }
}

和一个方法returns上面的模型如下,

return new AadToken { ExpiresIn = accessToken.ExpiresOn, Value = accessToken.Token };

现在我需要把它转换成秒,然后像下面这样设置,

//tokenModel.ExpiresIn needs to convert in sec.

entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(tokenModel.ExpiresIn);

我该怎么做?

这就像问2021-08-27 20:10:03中有多少秒。日期是一个瞬间,而不是持续时间,所以这个问题没有答案。

您可以计算两个日期之间的秒数,例如现在和目标日期,例如tokenModel.ExpiresIn - DateTimeOffset.Now。 returns a TimeSpan class with the duration. You can use the TotalSeconds 属性 以秒为单位获取持续时间

var expSpan=(tokenModel.ExpiresIn - DateTimeOffset.Now);
entry.AbsoluteExpirationRelativeToNow = expSpan.TotalSeconds;