定时

介绍

虽然一些应用程序针对单个时区,但其他应用程序针对许多不同的时区。为了满足这些需求并集中日期时间操作,ABP为日期时间操作提供了一个通用基础结构。

时钟

Clock是用于处理DateTime的主类它定义了以下静态属性和方法:

因此,我们使用Clock.Now代替使用DateTime.Now它将其抽象化:

DateTime now = Clock.Now;

时钟使用其中的时钟提供程序。有三种类型的 内置时钟提供程序

您可以设置Clock.Provider以使用其他时钟提供程序:

Clock.Provider = ClockProviders.Utc;

这通常在应用程序开始时完成(在Web应用程序的Application_Start中执行)。

客户端

可以使用JavaScript中abp.clock对象在客户端使用时钟当您在服务器端设置Clock.Provider时,ABP会自动在客户端设置abp.clock.provider的值

时区

ABP定义了一个名为 Abp.Timing.TimeZoneTimingSettingNames.TimeZone常量)设置,用于存储主机,租户和用户的选定时区。ABP假定时区设置的值是有效的Windows时区名称它还定义了一个时区映射文件,用于将Windows时区转换为 IANA时区,因为一些公共库使用的是IANA时区ID。必须使用UtcClockProvider才能支持 多个时区因为如果使用UtcClockProvider,所有日期时间值将以UTC格式存储,所有日期时间将以UTC格式发送给客户端。然后在客户端,我们可以使用用户的当前时区设置将UTC日期时间转换为用户的时区。 

客户端

ABP创建一个名为abp.timing.timeZoneInfo的JavaScript对象,其中包含当前用户的时区信息。此信息包含Windows和IANA时区ID以及一些有关Windows时区信息的额外信息。此信息可用于通过在他/她的时区向用户显示日期时间来进行客户端日期时间转换。

粘合剂和转换器

如果使用UTC时钟提供程序,则存储在数据库中的所有DateTime都将被假定为UTC值,并且除非明确指定,否则从客户端接收的所有DateTime都将被假定为UTC值。

nidie.com.cn - 用心与你沟通