QuickBooks Web连接器TimeModified偏移量不考虑夏令时

时间:2014-03-27 18:19:21

标签: quickbooks dst datetimeoffset qbxml qbwc

我使用QuickBooks Web Connector在使用QBXML请求的Windows 8.1计算机上从QuickBooks Desktop中提取员工记录。 TimeModified时间戳是否有原因返回一个不考虑夏令时的偏移量?有没有办法在主机系统上获得当前时间?

目前正在回归" 2014-03-27T14:20:53-05:00"对于TimeModified,即使当前时区设置为东部时间,并且"调整为夏令时"启用。偏移量应为-04:00。

QBXML请求:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="12.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <EmployeeQueryRq metaData="MetaDataAndResponseData">
      <OwnerID>0</OwnerID>
    </EmployeeQueryRq>
  </QBXMLMsgsRq>
</QBXML>

3 个答案:

答案 0 :(得分:2)

根据IPP社区的主持人的说法,这是一个错误。很遗憾,我们无法跟踪它。

“QBWG-18389 - DST未在TimeCreated和TimeModified字段中正确显示......我们无法在外部跟踪这些内容。”

Incorrect TimeModified Offset - Intuit Partner Platform Community

答案 1 :(得分:1)

我制作了一个c#库来处理这种情况。它是开源的。

https://github.com/jsgoupil/quickbooks-sync

长时间修复此错误后,我们提出了此解决方案

QuickBooks无法正确处理夏令时(DST)。该库中的DATETIMETYPE类已意识到此问题,并将通过删除常见用例中的偏移量值来纠正来自QuickBooks的时间戳。

在内部,QuickBooks在DST期间返回错误的日期时间偏移。因此,QuickBooks希望您在安装QuickBooks的计算机时区中以相同的不正确的偏移量发送日期时间,或者发送不带偏移量的日期时间。

答案 2 :(得分:0)

即使在QB 2019中我也已验证了此错误:(

虽然不是最佳选择,但有一个简单的解决方法:

检查时间是否在将来。如果是,则减去一小时。

//Pseudocode
if (timeModified.after(now())
  return timeModified.minus(oneHour)
else
  return timeModified

如果该错误已修复,则此更改仍然有效。