在动态 ax x++ 中将日期转换为当前公司时区



>我有一个场景,我需要将日期字段(加入日期)转换为当前公司时区日期。然后我需要将其与另一个日期(开始日期)进行比较。如果差异超过 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的答案。

最新更新