QuickBooks Web连接器时间修改偏移量不考虑夏令时
我正在使用QuickBooks Web连接器使用QBXML请求从Windows 8.1计算机上的QuickBooks桌面中提取员工记录。TimeModified时间戳返回不考虑夏令时的偏移量是否有原因?有没有办法获取主机系统上的当前时间 尽管当前时区设置为东部时间且启用了“调整夏令时”,但对于修改的时间,它当前返回“2014-03-27T14:20:53-05:00”。偏移量应为-04:00 QBXML请求: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"?>
<?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响应中发送的时间戳。