在我們的ASP.NET MVC 5應用程序中,我們擁有帶有時區ID(IANA)的用戶配置文件。如何從NodaTime的偏移量中獲取所有IANA時區?
public class User
{
public int Id { get; set; }
public string TimeZoneId { get; set; }
}
任務是在當地時間早上6點向所有用戶發送電子郵件。我們的計劃是每小時向當地時間早上6點(根據服務器的UTC時間計算)的所有時區發送電子郵件。
由於我們只有時區ID才能通過,因此我希望得到相應的時區ID,例如,考慮到DST,可以獲得偏移量-4:00:00 - 。
string[] timezoneIds;
然後我可以查詢我的數據庫,像這樣:
db.Users.Where(x => timezoneIds.Contains(x.TimeZoneId));
我的問題是,很明顯,這是一個不錯的主意,或是否有針對此問題的最佳做法,我不知道呢?
謝謝。
這種方法很好,但考慮屬特德SQL可能相當大,取決於匹配的時區數量。另外,如果代碼提前運行,那麼一定要在實際執行時間內傳遞正確的「即時」,而不是「現在」。 –
噢,我相信它可以和字典中的Offset'鍵一樣使用,而不是它真的很重要。 ;) –