如何在Web API傳回時間時,定義時區?

公司舊有系統要上雲端,

但地端的寫入資料庫的時間欄位都是台北時間,

但程式已開發一半,

臨時告知Web API要定義為台北時區,

但在不大幅修正程式的前提下,

該如何達成需求呢?

首先,到Azure Web 應用程式下的應用程式設定定義時區

在Web Api專案,App_Start資料夾下的WebApiConfig.cs加入下列程式

在Serializer時將會以本地時間為主

   config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;

然後將Web Api發佈到Azure上

取得到的結果將會定義為台北時區

{
  "TestTime": "2017-04-20T17:44:38.186+08:00"
}

參考連結

https://dotblogs.com.tw/junegoat/2015/07/14/azure-website-appsetting-timezone