ABP框架学习记录(9)- Timing解析
Timing这个功能主要用于以统一的方式表示时间。因为ABP中有大量的module,还支持自定义module,所以将时间统一表示为local时间(默认)或utc时间是必要的。
Clock(时钟)
TimingSettingProvider
:继承 SettingProvider
以设置统一的时间格式。
在 AbpKernelModule
的 PreInitialize
方法中引用:
ABP 提供 IClockProvider
获取当前时间和标准化时间的接口,三个实现 IClockProvider
接口的类: UtcClockProvider
,UnspecifiedClockProvider
,LocalClockProvider
。
IClockProvider
:
LocalClockProvider
:
UtcClockProvider
:
UnspecifiedClockProvider
:
ClockProviders
:提供三种 Providers
。
Clock
:封装了 IClockProvider
,对外提供当前时间和标准化时间的方法。默认使用 UnspecifiedClockProvider
。
也可以指定 Provider
:
1 | Clock.Provider = ClockProviders.Utc; |
DateTimeRange(时间区间)
IDateTimeRange/DateTimeRange
:表示一个时间区间的实体。
使用:
IZonedDateTimeRange/ZonedDateTimeRange
:使用时区定义 DateTime
的范围。
TimeZoneConverter/ITimeZoneConverter
:时区转换类。
TimezoneHelper
:用于时区操作的帮助程序类。
IanaTimeZone
:时区信息数据库,又称TZ database、Zoneinfo database,是一个主要应用于计算机程序以及操作系统的,可协作编辑世界时区信息的数据库。由于该数据库由David Olson创立,因而有些地方也将其称作Olson数据库。数据库由Paul Eggert进行编辑和维护
参考: