QuickBooks Web连接器时间修改偏移量不考虑夏令时

QuickBooks Web连接器时间修改偏移量不考虑夏令时,quickbooks,dst,datetimeoffset,qbxml,qbwc,Quickbooks,Dst,Datetimeoffset,Qbxml,Qbwc,我正在使用QuickBooks Web连接器使用QBXML请求从Windows 8.1计算机上的QuickBooks桌面中提取员工记录。TimeModified时间戳返回不考虑夏令时的偏移量是否有原因?有没有办法获取主机系统上的当前时间 尽管当前时区设置为东部时间且启用了“调整夏令时”,但对于修改的时间,它当前返回“2014-03-27T14:20:53-05:00”。偏移量应为-04:00 QBXML请求: <?xml version="1.0" encoding="utf-8"?>

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

尽管当前时区设置为东部时间且启用了“调整夏令时”,但对于修改的时间,它当前返回“2014-03-27T14:20:53-05:00”。偏移量应为-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>

0

据IPP社区的一位主持人说,这是一个bug。不幸的是,我们无法追踪它

“QBWG-18389-DST未在时间创建和时间修改字段中正确显示…我们无法从外部跟踪这些。”


即使在QB 2019年,我也已经验证了这个错误:(

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

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

//Pseudocode
if (timeModified.after(now())
  return timeModified.minus(oneHour)
else
  return timeModified
如果这个bug被修复了,这个修改仍然有效。

我已经制作了一个c#库来处理这个场景。它是开源的

经过长时间的修复,我们想出了这个解决方案

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

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


当您在QuickBooks中进行查询时,您是否将此偏移量传递给QuickBooks?您是否可以发布一些代码来说明您如何进行调用?我已使用QBXML请求更新了帖子。好的,那么您在查询中不包括任何
FromModifiedDate
tomModifiedDate
范围,对吗?另外,您从哪个平台进行调用?The offset确实是错误的,但是您确定实际的XML响应具有该值吗?或者您正在查看,例如,C#或其他语言中的
DateTime
DateTimeOffset
值,即从QuickBooks Web连接器在QBXML响应中发送的时间戳。