【问题标题】:EWS API set time zone for appointmentsEWS API 为约会设置时区
【发布时间】:2014-07-02 22:07:49
【问题描述】:

好的,让我们从头开始讨论这个主题。我正在使用 Coldfusion 9、Exchange 2013 和 EWS API 2.0。我可以在不指定时区的情况下连接和添加日历事件。我为其添加活动的用户位于东海岸。我可以从他在表中的记录中看出,其中值是 0=CST 和 1=EST。

<cfobject type="Java" class="microsoft.exchange.webservices.data.TimeZoneDefinition" name="timezoneinfo">
<cfset timezoneinfo.init( service )>

appointment.StartTimeZone = timezoneinfo.FindSystemTimeZoneById("Eastern Standard Time");

错误是; java.lang.ClassNotFoundException: microsoft.exchange.webservices.data.TimeZoneDefinition

对于如何做我需要的事情没有明确的定义。如果我遗漏了时区代码,则会将上午 9:00 的约会添加到上午 5:00 的日历中。

【问题讨论】:

  • 您是否阅读过这些最近发表的关于 EWS 托管 API 和时区的文章? Time zones and EWS in Exchange
  • 我明白他们在说什么。我只是不知道如何使用他们所说的话。完全不切实际:阅读 EWS 和 EWS 托管 API 之间的区别。当他们使用“直觉”这个词时,我的鼻子开始流血。
  • 我是否可能需要调整日期/时间以反映 UTC?
  • 您不必调整时间。 ExchangeService 对象有一个与之关联的时区,如果您不想使用客户端计算机的默认值,则可以通过构造函数进行设置。您还可以通过 StartTimeZone 和 EndTimeZone 属性设置时区。

标签: api exchangewebservices


【解决方案1】:

啊,我想我看到了问题所在。 TimeZoneDefinition 不是 Microsoft.Exchange.WebServices.Data 命名空间中的类。 Appointment.StartTimeZone 属性是一个 System.TimeZoneInfo 对象。

我不熟悉 ColdFusion,而且我是 Java 新手,但我猜您上面代码的第一行是导致错误的原因。

编辑:当我重新阅读本文时,我认为您使用的是 EWS Java API,而不是 EWS 托管 API。在这种情况下,TimeZoneDefinition 是library 中的一个类。我对 Java API 不够熟悉,无法为您提供使用它的示例。不过,this thread 中有一些似乎相关的信息。希望对您有所帮助!

【讨论】:

  • 非常感谢。你为我发现了很多东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 2012-05-30
  • 1970-01-01
  • 2011-09-01
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多