나는 게시물이 만들어 질 때 표시하기 위해 DateUtils.getRelativeTimeSpanString()
을 사용하고 있습니다.시간은 전에 트위터처럼
는 반환 문자열은 같은 것입니다 : 1 분 전,하지만 난 등 (단축과 전에없이) 1m 또는 1 시간하고 싶습니다.
"시간"을 "h"또는 "분"으로 "m"으로 바꿀 수 있지만 언어가 영어와 다른 경우 작동하지 않습니다. 그것은 Twitter
이 현재 사용하고있는 것입니다. 영어/키릴 문자 Twitter로 표시하는 방법.
UPDATE : 내가 여기 (다시 JodaTime 패키지를 사용) 청소기 솔루션을 추가 할 것입니다하지만 내가 @Bradley 윌슨의 대답을 받아 들일 것입니다. 또한 나머지 답변도 같은 결과로 수정 될 수 있으므로 투표권이 있습니다. 모두 감사합니다 :
이 Build.Gradle
파일과 같이 앱 수준으로 종속성을 추가
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