Canvas App中如何获取手机本地时区,并和账户时区做对比
TimeZoneOffset 函数可以返回用户本地时间和 UTC(协调世界时)的时间差(以分钟为单位),
结合DateAdd可以在本地时间和UTC时间之间做相互转换:
1、本地时间转换为UTC:DateAdd( Now(), TimeZoneOffset(), Minutes )
2、UTC转换为本地时间:DateAdd( UTCTime, −TimeZoneOffset( UTCTime), Minutes )
TimeZoneOffset函数详解可以参考:https://docs.microsoft.com/zh-cn/powerapps/maker/canvas-apps/functions/function-dateadd-datediff
因此通过下面的代码,可以获取到当前用户所在时区(+8:00\-8:00)
Set( CurrentTimeZoneText, If( TimeZoneOffset() > 0, "-", "+" ) & If( Mod( Abs(TimeZoneOffset()), 60 ) < 10, "0", "" ) & RoundDown( Abs(TimeZoneOffset()) / 60, 0 ) & ":" & If( Mod( Abs(TimeZoneOffset()), 60 ) < 10, "0", "" ) & Mod( Abs(TimeZoneOffset()), 60 ) );
通过查询UserSetting表,可以获取到当前用户的账户设置时区code
Set( CurrentTimeZoneCode, LookUp( [@'User Settings'], SystemUserId = userid, timezonecode ) );
根据时区code查询TimeZoneDefinitions表可以获取到时区的具体名称
Set( TimeZoneText, LookUp( [@'Time Zone Definitions'], 'Time Zone Code' = CurrentTimeZoneCode, 'User Interface Name' ) );
时区示例:
通过比较CurrentTimeZoneText 和TimeZoneText两个变量判断时区是否一致
If( !(CurrentTimeZoneText exactin TimeZoneText), Notify( "The current time zone is inconsistent with the account time zone, please go to the personal center to modify!", NotificationType.Warning ) );
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)