Working with Business Hours

DEX455 - Reports API、Sites、Support Classes 与 Territory Management

📄 第 349 页 🎬 视频课程

课程章节介绍

好,同学们,我们来看一下这节课要讲的重要知识点——Salesforce里的“工作时间”,在Apex中对应的就是BusinessHours这个类。这个概念听起来很简单,但它在实际业务中非常关键。 首先想想,什么是工作时间呢?就是我们客户支持团队真正在线、能处理问题的时间段,通常是周一到周五,早上九点到下午五点,可能还会排除掉节假日。而BusinessHours类,就是帮我们在代码里精准地操作这种业务时间的。 它提供了两个加时间的方法,一个叫add,一个叫addGmt。这两个有什么区别呢?假设你要在某个时间点上,加上两个工作小时。add方法加完之后,返回给你的结果是按照你当地时区来显示的。而addGmt呢,它加的同样是两个工作小时,但返回给你的结果统一是格林尼治标准时间,也就是GMT。这一点在做跨时区处理的时候格外有用,千万别弄混了。 接下来是diff方法。它的作用是把两个日期时间相减,但减的不是日历上那二十四小时,而是刨掉休息和假期后,纯工作时间的毫秒数。举个例子,如果你想知道一个工单从创建到解决,在客服手里实际处理了多久,就要用这个diff。还要注意,如果结束时间跑到了开始时间的前面,它会返回一个负值,这样你就知道时间顺序有问题了。 这些功能主要用在哪里呢?就是在处理SLA计算、支持权利验证这类场景中。比如说,你承诺用户两小时响应,这里的两小时必须是工作小时,不能是自然时间。否则晚上或者周末也算进去,那就闹笑话了。所以,只要是需要用业务术语,而不是日历时间来衡量时间的地方,这个BusinessHours类就至关重要。 好,关于BusinessHours类的基础用法我们就讲到这里。大家只要记住add、addGmt和diff这三个方法的核心区别,做时间计算的时候就不会错了。

关键词

Apex Salesforce Developer Guide