>我有一个场景,我需要将日期字段(加入日期)转换为当前公司时区日期。然后我需要将其与另一个日期(开始日期)进行比较。如果差异超过 365 天,我需要发出警告。有人可以帮助我吗?提前谢谢。
您可以通过 DateTimeUtil::applyTimeZoneOffset
将时区应用于utcdatetime
可以通过调用DateTimeUtil::getCompanyTimeZone 来检索公司时区
之后通过调用 DateTimeUtil::getDifference 来计算差异,它以秒为单位返回差异,因此您必须将其与每年的秒数进行比较。
为避免插入"魔术"数字,请使用宏库中的常量TimeConstants
。
如果 Datefield(joindate) 的类型是 date
而不是utcDateTime
那么应该使用 DateTimeUtil::newDateTime()
将其转换为 utcDateTime
:
utcDateTime joinDateTime = DateTimeUtil::newDateTime(joindate, 0, DateTimeUtil::getCompanyTimeZone());
DateTimeUtil::getDifference()
可用于获取utcDateTime
值之间的秒数。
和另一个日期(开始日期)都是date
类型而不是utcDateType
则根本不需要转换,您可以检查差异是否超过365,如下所示:
if (加入日期 - 开始日期> 365) {}
如果上述假设是错误的,请参阅DAXaholic的答案。