博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP框架 - 时间
阅读量:7118 次
发布时间:2019-06-28

本文共 1496 字,大约阅读时间需要 4 分钟。

 

本节内容:

 

简介

虽然有些应用目标市场只是在一个时区,有些应用目标市场是许多不同时区,为满足这种需求并集中化日期操作,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,除了显式指明。

 

转载地址:http://tliel.baihongyu.com/

你可能感兴趣的文章
表格存储如何实现跨区域的容灾
查看>>
Dockerfile最佳实践(二)
查看>>
QUICKBMS GUIDE
查看>>
T-SQL Enhancement in SQL Server 2005[下篇]
查看>>
新鲜的“云包”
查看>>
arm平台函数传递参数,反汇编实例分析
查看>>
SaltStack Syndic配置
查看>>
Salesforce即将推出Einstein人工智能CRM平台
查看>>
网易严选App感受Weex开发
查看>>
趋势发布SecureCloud云安全技术架构
查看>>
3PAR副总裁谈09年存储虚拟化
查看>>
2009年云计算将引发一场黑客攻击高潮
查看>>
亚信基于AWS构建世界级企业互联网平台
查看>>
达索系统成立“大土木工程达索系统BIM技术推进联盟”深化应用、共享经验
查看>>
猥琐思路复现Spring WebFlow远程代码执行
查看>>
开发平台怎么选?来看看专业人士怎么说
查看>>
移动设备尚未形成DDoS的3个原因
查看>>
《OpenGL编程指南(原书第9版)》——1.4 OpenGL渲染管线
查看>>
《中国人工智能学会通讯》——7.7 结束语
查看>>
勒索软件好多都使用恶意LNK链接文件欺骗用户 来看趋势科技分析新型LNK-PowerShell攻击...
查看>>