假設今天要寫一之程式去讀資料庫裡紀錄的時間, 來決定是否執行動作(如資料更新...等等), 一般來說, 我們會在資料庫裡存放UTC時間, 因為我們不知道使用者會在哪個時區使用這支程式
當我們拿到時間的資料後,
如果是字串, 可以使用DateTime.Parse轉成DateTime物件
var timestamp = await GetTimestampFromDbAsync(); DateTime datetime = DateTime.Parse(timestamp); DateTime currentDateTime = DateTime.Now |
將結果轉換成像是分鐘這種實際上的數字方便我們做邏輯判斷
以下的例子就是, 當時間差15分鐘時必須去呼叫 UpdateAsync()
double timespan = ( currentDateTime - datatime ).TotalMinites;
if( timespan > 15 )
{
await UpdateAsync();
}
需要注意的是
DateTime.Parse(String, IFormatProvider, DateTimeStyles) 允許我們帶入三個參數
其中第二個參數可以決定要轉換成哪個時區的時間
若直接呼叫如下
DateTime.Parse( "Thu, 12 Apr 2018 01:15:08 GMT" );
預設是用機器當地的時間去做轉換
但如果想還原為還原成UTC的時間的話
可以呼叫
Datetime.ToUniversalTime()
若我們想取得現在的UTC時間的話
也可以藉由呼叫以下的方法獲得
Datetime.UtcNow
留言
張貼留言