日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

眼见为实:.NET类库中的DateTimeOffset用途何在

發布時間:2025/3/20 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 眼见为实:.NET类库中的DateTimeOffset用途何在 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 EnyimMemcachedCore(支持.NET Core的memached客戶端)中實現?Microsoft.Extensions.Caching.Distributed.IDistributedCache 接口時,遇到了一個過期時間處理的問題。

在?IDistributedCache 中用到了 DistributedCacheEntryOptions ,其中有一個屬性?AbsoluteExpiration 的類型是?DateTimeOffset 。而?EnyimMemcachedCore 計算過期時間用的是 DateTime,計算方法如下(示例代碼):

DateTime expiresAt = DateTime.Now.AddHours(1); DateTime unixEpoch = new DateTime(1970, 1, 1); var totalSeconds = (uint)(expiresAt.ToUniversalTime() - unixEpoch).TotalSeconds;

上面的代碼中,totalSeconds 的運行結果是?1474951193 。

那使用 DateTimeOffset 時該如何處理呢?

DateTimeOffset 表示的是時間偏移量,那它是基于哪個時間基準的偏移呢?從?DateTimeOffset 的注釋中得知它是基于 UTC 時間(Coordinated Universal Time)。它和 DateTime 一樣也有 Now 屬性,于是有了下面的代碼:

DateTimeOffset expiresAtOffset = DateTimeOffset.Now.AddHours(1);

那如何計算它相對于 1970-1-1 00:00:00 的總秒數呢?發現 DateTimeOffset 有個方法叫?ToUnixTimeSeconds() ,從名稱看應該就是它吧。第1次使用它,需要驗證一下,眼見為實:

totalSeconds = (uint)expiresAtOffset.ToUnixTimeSeconds();

totalSeconds 的運行結果也是是 1474951193 。

有了?DateTimeOffset ,計算過期時間更方便了,你也可以不用記住 Unix 時間戳的計算起始時間了。

總結

以上是生活随笔為你收集整理的眼见为实:.NET类库中的DateTimeOffset用途何在的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。