4

应用程序使用 SOAP4r 来使用 API/SOAP

但是 SOAP::SOAPTimeFormat 正在返回 2015-11-15T16:59:521468.7999999999999545-04:00

chkout.add('purchasedDt ', SOAP::SOAPDateTime.new(basket.purchase_Date))

使用 strftime('%Y-%m-%dT%H:%M:%S') 给出以下

chkout.add('purchasedDt ', SOAP::SOAPDateTime.new(basket.purchase_Date.strftime('%Y-%m-%dT%H:%M:%S')))

2015-11-15T16:59:52Z

App 需要的是
2015-11-15 16:59:52 -0400 请告知...需要格式为 yyyy-mm-ddThh:mm:ss-/+gmt

-弗兰西斯

4

2 回答 2

2

似乎您的应用程序接受 iso8601 格式。您可以Time#xmlschema用作生成 iso8601 兼容字符串的快捷方式:

basket.purchase_Date.xmlschema
#=> "2015-11-15T16:59:52-04:00"

只需在您的示例中更改此行:

chkout.add('purchasedDt ', SOAP::SOAPDateTime.new(basket.purchase_Date.xmlschema))
于 2016-04-27T21:21:53.677 回答
2

对您的 strftime 进行简单更改,您可以在Time#strftime的文档中找到更多信息

basket.purchase_Date.now.strftime('%Y-%m-%d %H:%M %z')
=> "2016-04-26 22:48 -0400"
于 2016-04-27T20:50:19.193 回答