通知は、彼らが到着したどのくらい前に示しています iOSで通知文字のような時間の文字列を生成するにはどうすればよいですか? iOSの
があり
- "今"
- "5メートル前"
- "1D前に"これらの文字列を生成するネイティブな方法i18n フレンドリーな方法? (注:「M」は「分」ではありません)
私はYLMomentのようなライブラリを知っているが、どれもこれら短い文法をサポートするように見えるん。
通知は、彼らが到着したどのくらい前に示しています iOSで通知文字のような時間の文字列を生成するにはどうすればよいですか? iOSの
があり
私はYLMomentのようなライブラリを知っているが、どれもこれら短い文法をサポートするように見えるん。
あなたはNSDateComponentsFormatterを使用してになります。例:
let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.includesApproximationPhrase = true
formatter.allowedUnits = [.Minute]
formatter.maximumUnitCount = 1
let oldDate = NSDate(timeIntervalSinceNow: -60*60)
print(formatter.stringFromDate(oldDate, toDate: NSDate()))
「約60m」と印刷されますが、実際にはそれが実際のものかどうかはわかりませんが、「前回」は表示されません。
あなたは 'Abbreviated'ユニットスタイルで完全に正しいですし、' maximumUnitCount'は私が見逃していたものでした。ローカライズされた方法で "-10m" "-4h"のような文字列を生成できるようになりました!残念ながら、それは[SDKは、まだ「前」を使用するには、これらの負の文字列をフォーマットする方法を持っていないかもしれません]と思われる(http://www.openradar.appspot.com/17436956)...レコードの – Warpling
は、 'includesTimeRemainingPhrase'は「変えていきます-10m "から" -10m remaining " – Warpling
あなたはhttp://stackoverflow.com/questions/8614543/how-can-i-format-two-nsdate-as-a-time-difference-string-eg-2days-ago-and-makをチェックしましたか? rq = 1? – Lasse
ありがとう@Lasse、私はしましたが、通知時間の前の文字列に似た何かを生成するのに役立つようではありません。 – Warpling