【发布时间】:2023-01-03 22:34:25
【问题描述】:
许多 API 都希望 ISO8601 没有这样的毫秒数:
仅获取在此时间戳之后放置的订单。应采用 YYYY-MM-ddTHH:mm:ssZ 格式
我想主要的“问题”是秒后的点(秒和毫秒之间),必须对点进行 url 编码(http GET 说话),对吗?
SDateFormat: string = 'yyyy''-''mm''-''dd''T''hh'':''nn'':''ss''.''zzz''Z'''; { Do not localize }我不能失去毫秒。
DateToISO8601(TTimeZone.Local.ToUniversalTime(RecodeMilliSecond(now, 0), false), true)这是我目前的方法:
var utc: TDateTime; ... utc := TTimeZone.Local.ToUniversalTime(now); utc := RecodeMilliSecond(utc, 0); ... Format('/orders?storefront=de&ts_created_from_iso=%sT%sZ', [FormatDateTime('yyyy-mm-dd', utc), FormatDateTime('hh:nn:ss', utc)])还有其他想法吗?
【问题讨论】:
-
您提到“URL Encoding the dot”,但这不是需要 URL 编码的字符……这表明您可能正在以不同的方式思考这个问题,这对您的问题的读者来说并不明显。