良いフォーマットとロジックで時刻を文字列として表示しようとするときに、Swift 3に問題があります。Swift 3 - 時間を文字列として表示する方法(各5分)
コンテキスト
私達のユーザーが当社のサーバーに私たちに情報を送信することができます。私はそれらの情報をAppに表示し、それに関するいくつかの統計を行っています。
たとえば、最初の情報が投稿されてからの経過時間を計算して表示します。
私は最も古いユーザー情報(タイムスタンプとして)を持っており、経過時間を表示したいと考えています。
たとえば、経過時間(最初の情報が投稿されて以降)が0〜5分の場合です。
"最後5分に投稿されたXの情報" - > [0-5]分
"最後10分に投稿されたXの情報" - >] 5-10]分
「最後の時間に投稿されたXの情報」 - > 1時間、より
は、どのように私は、この特定のケースを処理し、迅速にこれを行うために私を可能にするソリューションすることができます。
これは私がこれまでにやっていることです: elf.info
のは私の情報の配列である(それぞれの情報がタイムスタンププロパティ
private func getInformationTime() -> String {
//Get the oldest Information
let sortedArray = self.info.sorted(by: { $0.timestamp < $1.timestamp })
let oldestInfoDate = Date(timeIntervalSince1970: (sortedArray.first?.timestamp)!)
let now = Date()
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .short
formatter.allowedUnits = [.minute]
formatter.maximumUnitCount = 1
let string = formatter.string(from: oldestInfoDate as Date, to: now as Date)
return string!
}
を持っている私はこの方法とそれを呼び出し私にこれを表示してください:
let infoTime = self. getInformationTime()
let message = "\(self.info.count) informations in \(infoTime)"
print(message)
結果:244 informations in 184 min
結果は、私はかなりの数と楽しい時間値を持って、適切なものです。
適切にフォーマットしたいと考えています。
PS:私は、異なる言語(文字列のファイル)にそれを翻訳できるようにする必要がありますように、私のアプリは国際を使用しています。
私が望む方法で表示するように拡張機能をカスタム化します。ありがとう、ちょうど私が探していたもの。 – Balanced