Я получаю эти дурацкие временные метки из твиттера, используя там api, чтобы получить временную шкалу конкретного пользователя.
Thu May 31 16:43:37 +0000 2018
Эта отметка времени равна 9: 47Ам.Тем не менее, использование традиционных методов синтаксического анализа в течение 24 часов дает неточные результаты.Какой временной масштаб это и как я могу преобразовать это в обычное старое 12-часовое время, или timeIntervalSince1970, если это возможно.Спасибо!
Эта метка времени была получена из ответа json с использованием:
https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline
моя попытка разбора этого беспорядка:
public func properFormattedTime(with twitterTime : String) -> String{
let lowerBound = String.Index.init(encodedOffset: 0)
let upperBound = String.Index.init(encodedOffset: 11)
let range = lowerBound..<upperBound
let newStr = String(twitterTime[range])
print("test \(newStr)")
let lowerBound1 = String.Index.init(encodedOffset: 11)
let upperBound1 = String.Index.init(encodedOffset: 13)
let range1 = lowerBound1..<upperBound1
let timeStr = String(twitterTime[range1])
let lowerBound2 = String.Index.init(encodedOffset: 13)
let upperBound2 = String.Index.init(encodedOffset: 16)
let range2 = lowerBound2..<upperBound2
let minsStr = String(twitterTime[range2])
var timeInt = Int(timeStr)!
print("test time \(timeInt)")
if timeInt > 12{
if timeInt != 24{
timeInt = timeInt - 12
}else{
timeInt = 12
}
return "\(newStr) \(timeInt)\(minsStr) PM"
}else{
return "\(newStr) \(timeInt)\(minsStr) AM"
}
}