<<ABP框架>> 時間

来源:http://www.cnblogs.com/kid1412/archive/2016/10/24/5991436.html
-Advertisement-
Play Games

文檔目錄 本節內容: 簡介 時鐘 客戶端 時區 客戶端 綁定器與轉換器 客戶端 客戶端 簡介 雖然有些應用目標市場只是在一個時區,有些應用目標市場是許多不同時區,為滿足這種需求並集中化日期操作,ABP為日期操作提供公共基礎。 時鐘 Clock是與DateTime值合作的主要對象,它定義了以下靜態屬性 ...


文檔目錄

 

本節內容:

 

簡介

雖然有些應用目標市場只是在一個時區,有些應用目標市場是許多不同時區,為滿足這種需求並集中化日期操作,ABP為日期操作提供公共基礎。

 

時鐘

Clock是與DateTime值合作的主要對象,它定義了以下靜態屬性/方法:

  • Now:通過當前供應器獲取當前時間。
  • Kind:獲取當前供應器的DateTimeKind。
  • SupportsMultipleTimezone:獲取一個值,指示當前供應器能否支持多時區應用。
  • Normalize:把給定的DateTime標準化/轉換成適合當前供應器。

所以,我們用抽象了Colok.Now的DateTime.Now代替DateTime.Now:

DateTime now = Clock.Now;

Clock內部使用了時鐘供應器。有三種內置的時鐘供應器:

  • ClockProviders.Unspecified(UnspecifiedClockProvider):預設的時鐘供應器,行為就像DateTime.Now。它使你完全不用Clock類。
  • ClockProviders.Utc(UtnClockProvideder):用UTC時間,Clock.Now為DateTime.UtcNow。Normalize(標準化)方法把給定的時間轉換成utc時間,並設它的Kind(種類)為DateTimeKind.Local。
  • ClockProviders.Local(LocalClockProvider):用電腦的本地時間,Normailize方法把給定的時間轉換成當地時間,並設置它的種類為DateTimeKind.UTC。它支持多時區。

你可設置Clock.Provider,以便使用一個不同的時鐘供應器:

Clock.Provider = ClockProviders.Utc;

這是在應用程式開始前(在Web應用里就是Application_Start)通常的做法。

 

客戶端

通過javascript的abp.clock對象在客戶端使用時鐘,當你在服務端設置Clock.Provider時,ABP會自動在客戶端設置abp.clock.provider的值。

 

時區

ABP定義了一個名為Abp.Timing.TimeZone設置(TimingSettingNames.TimeZone常量),來存儲被選的宿主時區。ABP假設時區設置的值是一個可用的Windows時區id。同樣定義了一個時區映射文件把一個Windows時區轉換成IANA(互聯網數字分配機構)時區,因為有些公共庫使用的是IANA時區id。為支持多時區必須使用UtcClockProvider。如果使用UtcClockProvider,所有的日期值將存儲為UTC,並用UTC的格式發送給客戶端,然後我們可以在客戶端通過用戶當前時區的設置把UTC日期轉換成用戶的時區。

 

客戶端

ABP創建一個Javascript對象,名為abp.timing.timeZoneInfo,為當前用戶包含時區信息。該信息包含Windows和IANA時區id和一些windows時區額外信息。這些信息可用用戶的時區轉換和顯示給用戶。

 

綁定器和轉換器

  • 在MVC、Web Api和Asp.new Core項目里,ABP自動把接收到的日期按當前時鐘供應器標準化。
  • 當使用EntityFramework或NHibernate模塊時,ABP自動把接收自資料庫的日期按當前時鐘供應器標準化。

如果使用UTC時鐘供應器,所有的存儲在資料庫中的日期都認為是UTC值,和所有接收自客戶端的日期都認為是UTC,除了顯式指明。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.安裝phpStorm,步驟略 2.安裝xampp: 2.1 我下載的版本為:XAMPP 5.6.24(下載最新版裡面沒有xdebug.so文件) 照步驟安裝。 2.2 安裝成功後,啟動一下,看看是否可以運行,在瀏覽器地址欄輸入localhost,查看是否可以進入到xampp網站 。 2.3 點擊 ...
  • 嗬!沒想到吧!學習 Linux 的第三天,我們已經開始接觸用戶管理,用戶組管理,以及許可權管理這幾個逼格滿滿的關鍵字。這幾個關鍵字對於前端程式猿的我來說真的是很高大上有木有,以前嘗試學 Linux 的時候看到這些名詞總是下意識的跳過不敢看有木有,一提起這幾個名詞馬上腦海中總是升騰起無限的崇拜有木有!今 ...
  • 文檔目錄 本節內容: 實體類 聚合根類 領域事件 約定的介面 審計 軟刪除 活躍/消極 實體 實體變化事件 IEntity 介面 領域事件 審計 軟刪除 活躍/消極 實體 實體是DDD一個核心的概念。Eric Evans是這麼描述的:“一個對象根本上不是按它的特性定義的,而是按一個線程的連續性和身份 ...
  • 在做項目的時候,需要輸出資料庫操作的耗時,自己寫了個方法。老大看到後,奇怪我為什麼不用現成的。才知道有StopWatch這個類。 屬性 名稱說明 Elapsed 獲取當前實例測量得出的總運行時間。 ElapsedMilliseconds 獲取當前實例測量得出的總運行時間(以毫秒為單位)。 Elaps ...
  • mvc 碰到 從客戶端(Msg=&quot;...=&quot;pc}oDGY1&lt;h&quot;)中檢測到有潛在危險的 Reque...&quot;)中檢測到有潛在危險的 Request.QueryString 具體參數值 pc}oDGY1<h 引起的錯誤 從網上查在方法前加 [Validat ...
  • .NetCore MVC中的路由(1)路由配置基礎 0x00 路由在MVC中起到的作用 前段時間一直忙於別的事情,終於搞定了繼續學習.NetCore。這次學習的主題是MVC中的路由。路由是所有MVC框架都會實現的一個組件,核心功能就是根據接收到的Http請求中的Path(對於http://local ...
  • 一、Enable-Migrations 說明:為項目啟用遷移。此命令為項目添加Migrations文件夾,其中包括兩個文件: Configuration類:此類允許針對上下文配置遷移的行為 InitialCreate遷移:此遷移在啟用遷移之前生成。如果在啟用遷移之前沒有生成資料庫,則不會將此文件加入 ...
  • 轉自(http://www.cnblogs.com/zhangchenliang/p/4968779.html) 委托是一個類,它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞。事件是一種特殊的委托。 1.委托的聲明 (1). delegate delegate我們常用到的一種聲明 ... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...