ABP框架学习记录(9)- Timing解析
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进行编辑和维护
参考: