我目前面临数据格式问题。我的产品提供 ics 文件以允许用户在自己的日历中导入会议日程。
由于我的用户在不同的国家,我们使用时区来管理小时的差异。到目前为止,一切正常,但几天前我们遇到了一位南非用户的问题。由于他的代码在 IANA 和微软时区格式之间不一样,当他在 Outlook 应用程序中导入它时,它会在显示的小时内产生错误。
我对其进行了测试,并且仅在此日历中得到了这种行为。如果我在 office365 或谷歌日历中测试它,我不会复制它。
有人知道如何在 Outlook 应用程序中强制使用它,或者在 ics 文件中添加一些信息以让他显示正确的时间?
为了更清楚地完成我的解释,我把案例放在这里。我的客户创建会议 = 从 12:00 到 15:00 SAST(意味着 GMT + 02:00)。当我们将会议导出到 Outlookapps 日历中时,我们得到了会议时间 = 从 10:00 到 13:00 CET。这是错误的,因为时间应该是欧洲中部时间 11:00 到 14:00。此外,如果我在 Office 365 日历或谷歌日历中导入相同的会议,我得到了预期的结果(从 CET 11:00 到 14:00)。
关于代码,我们使用基于 IANA 格式的对象 java.time.zoneddatetime 和 java.time.zoneid。但对我来说,问题不在这里。我已经找到了许多进行转换的方法,但是由于我的结果在除此之外的所有情况下都是正确的,因此我正在寻找一种应用程序配置,而不必提供 2 种不同的导出方式,这会让用户感到困惑。
问候,马修