UIWebView 中的 Office 文档,日期之间存在时间差
Posted
技术标签:
【中文标题】UIWebView 中的 Office 文档,日期之间存在时间差【英文标题】:Office documents in UIWebView with time difference between dates 【发布时间】:2012-08-31 16:30:08 【问题描述】:我一直在使用 UIWebView 来渲染 office 文档,但最近我注意到当在文件中添加日期时,假设一个 Excel 文件在其中一个单元格中具有日期值,日期为 (显然)被网络视图修改。
奇怪的是我做了一个基于两个项目的测试。第一个是我已经工作了大约一年的项目,第二个是我为测试目的而创建的新项目。
日期在新项目中显示正确,但在旧项目中显示错误,所以我开始认为与项目设置有关。我还将新项目中的类复制到旧项目中,看看是否有区别,但即使使用新类,我的旧项目也会显示同一个 excel 文件的错误(*)日期......所以这很奇怪。
有什么想法吗?
提前致谢
更新 1: (*) 错误的日期是指测试项目中显示的日期与旧项目中显示的相同文件的日期之间存在时间差。
我将问题的标题从“...无效日期”更改为“...时间差”...因为“无效”一词可能会导致误解。
【问题讨论】:
日期是否提前了四年?如果是这样,那么它是 Mac (1904) 和 Windows (1900) 的零日期之间的混淆。见The 1900 Date System vs. the 1904 Date System。这将是一个错误,因为每个 Excel 工作表都指示使用了哪个基数。 嘿,感谢您的评论。不,差异大约是 3 或 4 小时。如果问题与日期系统有关,则问题必须存在于两个项目中,事实并非如此。 你能修改这个日期吗?如果是这样,在 ctime.h 中有一个名为 localtime 的变量。它是来自 UNIX 系统的 C 变量。也许您可以从本地时间中减去 GMT 时间。我在另一个系统上遇到了类似的问题,并且解决了这个问题。 这两个项目的不同之处在于一个以任何方式操纵区域设置、时区、日历等吗? 在旧的 excel 文件中可能是特定于列的格式吗?尝试在旧 Excel 文件中新创建的工作表上创建新日期列,然后将日期值键入(不要复制和粘贴)到新日期列中。如果显示正确,那么它只是旧 excel 文件的日期列上的 excel 文件列格式(很可能是时区偏移)。 【参考方案1】:我无法理解问题所在,但目前的解决方案是将可视化组件从 UIWebView 更改为 QuickLook 框架。
我知道这不是问题的正确答案,但至少是正确显示文档的一种方式。
【讨论】:
以上是关于UIWebView 中的 Office 文档,日期之间存在时间差的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 8 Objective c 中的 UIWebView 中从文档中加载 png 图像
如何在 iOS 的 UIWebView 的文档目录中使用 Javascript?
Office 365 API为整天事件返回错误的开始和结束日期时间