私はDateUtils.getRelativeTimeSpanString()
ポストが行われたときに表示するために使用しています。 1分前、私は上の(短縮と前なし)1メートル又は1 Hなどになりたい:それは返し時間の前に表示Twitterのように
ストリングは、そのようなものです。
「時間」を「h」または「分」と「m」で置き換えることはできますが、言語が英語と異なる場合は機能しません。これは現在Twitter
が使用しているものです。 英語/キリル文字 Twitterで表示する方法。
UPDATE:私はここに(再びJodaTimeパッケージを使用して)クリーナーソリューションが追加されますが、私は@Bradleyウィルソンから答えを受け入れます。残りの回答も同様の結果に変更できるので投票に値する。すべて、ありがとう:
DateTime postMaded = new DateTime(your previous date);
DateTime nowUpdate = new DateTime();
Period period = new Period(postMaded, nowUpdate);
PeriodFormatter formatter;
Locale current = ConverterMethods.getCurrentLocale();
if (current.getLanguage().contentEquals(any Cyrillic language)) {
if (period.getYears() != 0) {
formatter = new PeriodFormatterBuilder().appendYears().appendSuffix(" г.").printZeroNever().toFormatter();
} else if (period.getMonths() != 0) {
formatter = new PeriodFormatterBuilder().appendMonths().appendSuffix(" м").printZeroNever().toFormatter();
} else if (period.getWeeks() != 0) {
formatter = new PeriodFormatterBuilder().appendWeeks().appendSuffix(" седм.").printZeroNever().toFormatter();
} else if (period.getDays() != 0) {
formatter = new PeriodFormatterBuilder().appendDays().appendSuffix(" д").printZeroNever().toFormatter();
} else if (period.getHours() != 0) {
formatter = new PeriodFormatterBuilder().appendHours().appendSuffix(" ч").printZeroNever().toFormatter();
} else if (period.getMinutes() != 0) {
formatter = new PeriodFormatterBuilder().appendMinutes().appendSuffix(" мин").printZeroNever().toFormatter();
} else {
formatter = new PeriodFormatterBuilder().appendSeconds().appendSuffix(" с").printZeroNever().toFormatter();
}
} else {
if (period.getYears() != 0) {
formatter = new PeriodFormatterBuilder().appendYears().appendSuffix(" y").printZeroNever().toFormatter();
} else if (period.getMonths() != 0) {
formatter = new PeriodFormatterBuilder().appendMonths().appendSuffix(" mon").printZeroNever().toFormatter();
} else if (period.getWeeks() != 0) {
formatter = new PeriodFormatterBuilder().appendWeeks().appendSuffix(" w").printZeroNever().toFormatter();
} else if (period.getDays() != 0) {
formatter = new PeriodFormatterBuilder().appendDays().appendSuffix(" d").printZeroNever().toFormatter();
} else if (period.getHours() != 0) {
formatter = new PeriodFormatterBuilder().appendHours().appendSuffix(" h").printZeroNever().toFormatter();
} else if (period.getMinutes() != 0) {
formatter = new PeriodFormatterBuilder().appendMinutes().appendSuffix(" m").printZeroNever().toFormatter();
} else {
formatter = new PeriodFormatterBuilder().appendSeconds().appendSuffix(" s").printZeroNever().toFormatter();
}
}
Joda-Time(https://github.com/dlew/joda-time-android)には、そのようなことをするための素晴らしいオプションがいくつかあります。 –
'Period'、' PeriodFormatter'、 'PeriodFormatterBuilder'クラスを含むパッケージを指定すると役に立ちます – RustamG
私はそれを追加しました。それを指摘してくれてありがとう。 – charbinary