- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将 eBay timeLeft 转换为 TimeInterval。 timeLeft 值是从 eBay 返回的。显然该值是 ISO 8601(请参阅下面的链接和问题)。我相信 timeLeft 是相对于我进行 API 调用的时间间隔。
http://developer.ebay.com/Devzone/finding/CallRef/findItemsByKeywords.html
来自 eBay 引用资料:
searchResult.item.sellingStatus.timeLeft
列表结束前剩余的时间。持续时间以 ISO 8601 持续时间格式 (PnYnMnDTnHnMnS) 表示。对于已经结束的列表,剩余时间为 PT0S(零秒)。有关此时间格式的信息,请参阅“持续时间”类型。
P10DT4H38M16S
例如 eBay 剩余时间格式:
P = Pending (INDICATOR OF ISO8601 DURATION)
1Y = 1 Year
2M = 2 Months
2D = Two Days
T = Time Separator (M is ambiguous)
16H = Sixteen hours
2M = Two minutes
40S = Forty seconds
我可以按如下方式格式化字符串,但是这个解决方案没有给我基于剩余时间属性的能力处理。例如。如果天数为 0,我不想显示“0 天”。 Ebay API ISO 8601 Date to timestamp
我的具体问题是,有没有办法让这个 timeLeft 进入 swift 3.0 DateInterval,以便我可以使用变量类型的原生函数?
最佳答案
我认为 eBay 在使用持续时间字段时犯了一个错误。它应该说明拍卖的开始和结束日期,以使事情变得更简单。日期计算很难。我还没有阅读完整的 API 文档,但只是在我的脑海中浮现:
话虽如此,这里有一个可能的 ISO 8601 持续时间字符串解析器:
struct ISO8601Duration {
var years = 0
var months = 0
var weeks = 0
var days = 0
var hours = 0
var minutes = 0
var seconds = 0
init?(string: String) {
guard string.hasPrefix("P") else {
return nil
}
let regex = try! NSRegularExpression(pattern: "(\\d+)(Y|M|W|D|H|S)|(T)", options: [])
let matches = regex.matches(in: string, options: [], range: NSMakeRange(0, string.utf16.count))
guard matches.count > 0 else {
return nil
}
var isTime = false
let nsstr = string as NSString
for m in matches {
if nsstr.substring(with: m.range) == "T" {
isTime = true
continue
}
guard let value = Int(nsstr.substring(with: m.rangeAt(1))) else {
return nil
}
let timeUnit = nsstr.substring(with: m.rangeAt(2))
switch timeUnit {
case "Y":
self.years = value
case "M":
if !isTime {
self.months = value
} else {
self.minutes = value
}
case "W":
self.weeks = value
case "D":
self.days = value
case "H":
self.hours = value
case "S":
self.seconds = value
default:
return nil
}
}
}
func endDate(from date: Date = Date()) -> Date? {
var components = DateComponents()
components.year = self.years
components.month = self.months
components.day = self.weeks * 7 + self.days
components.hour = self.hours
components.minute = self.minutes
components.second = self.seconds
return Calendar(identifier: .gregorian).date(byAdding: components, to: date)
}
}
let timeLeft = "P1DT13H24M17S"
if let duration = ISO8601Duration(string: timeLeft),
let endDate = duration.endDate()
{
print(endDate)
}
关于ios - 将 eBay timeLeft 转换为 Swift 3.0 TimeInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42887207/
对于移动应用程序,我们希望集成 eBay Kleinanzeigen (www.ebay-kleinanzeigen.de) API。目标是(API GET)获取某个(德国)邮政编码中的所有分类广告。
我正在使用 ebays 开发人员程序列出 ebays 类别列表,我想做的是使用 ebays API 调用导入此列表,我的问题是,我正在重新发明轮子以创建插入语句列表导入所有类别或者是否已经在某处创建了
我在我的 AddFixedPriceItem 请求中指定了 SKU,但响应没有返回 SKU(尽管 SKU 在架构中指定)。这是一个问题,因为我使用的是大型商家服务并且可以一次提交多个项目。如果一批中的
我想使用 eBay API 获取 "Deals & Special Offers" 中可用的交易网站的(每日优惠)部分。但我找不到任何可以让我这样做的函数或函数参数。看来我只能检索主站点上可用的数据,
如何让 Ebay API 返回描述? 我有一些代码可以进行 API 调用,如下所示: http://svcs.ebay.com/services/search/FindingService/v1? c
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在尝试从 eBay 中提取付款日期为空的订单列表。这是我当前的查询: http://developer.ebay.com/devzone/xml/docs/reference/ebay/getor
有谁有使用 Ebay API 的经验吗?我基本上是想在他们的网站上列出一家商店的所有商品,所以这不会是公共(public)服务用途。 GetSellerList 方法似乎是要走的路,但 Ebay 网站
我的场景:我有一位客户拥有一家带有自定义类别的 eBay 商店。他们想在他们的网站上列出他们待售的商品。他们希望此列表可以按自定义类别进行过滤。 我已经搜索了几天了,但我仍然有点不确定继续的最佳方法。
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 3 年前。 Improve
调用 eBay AddItemRequest API 时出现以下错误 缺少项目特定类型。将类型添加到此列表,输入有效值,然后重试。21919303 XXXXXXXXXXX
我使用 findCompletedItems 来查找与特定类别(男鞋)中的一组特定关键字相匹配的所有商品,并且我可以轻松指定我只想要特定鞋子的所有商品大小,使用 aspectFilter: U
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在尝试使用 eBay API Explorer 上的 eBay 用户身份验证 token 调用此 API: https://api.ebay.com/sell/inventory/v1/inven
我最近从 HTTP 转移到 HTTPS,但我收到安全警告,因为来自 ebay API 的图片仍在通过 HTTP 传输。 API 用户是否知道通过 HTTPS 获取图库 url 或 图片 url 的方法
我有一个 eBay 的 auth_token,我想获取该 token 的到期日期。 我知道它的重复问题,但没有为该问题提供答案: https://stackoverflow.com/questions
我是 eBay API 的新手,目前使用 PHP 进行开发,我已经设法使用 GetItem 将基于商品 ID 的订单详细信息导入到我网站的数据库中。但我现在想做的是将用户帐户链接到我的网站并将他们的列
我刚开始使用 eBay API,但找不到满足我需求的方法。此外,这通常应该非常简单。 我想知道是否可以将任何 eBay URL 传递给 API (PHP) 并获得添加了我的附属参数的新链接。 它的工作
我一直在阅读 eBay 开发者网络,但我一直想不出如何完成简单的任务,即通过他们的API。 任何人都可以帮助我实现这一目标。 非常感谢。 编辑: 我试过使用 HTTP 方法: http://open.
我正在尝试使用 api davidtsadler/ebay-sdk-php 获取我的订单(已售商品)列表 https://github.com/davidtsadler/ebay-sdk-php 但我
我是一名优秀的程序员,十分优秀!