【问题标题】:Android getRelativeTimeSpanString flags not working in other languages than English?Android getRelativeTimeSpanString 标志在英语以外的其他语言中不起作用?
【发布时间】:2015-10-31 01:06:20
【问题描述】:

我正在尝试使用来自 DateUtils 的这个 Android 辅助方法:

public static CharSequence getRelativeTimeSpanString(很长,很长 现在,long minResolution, int flags)

在他们说的文档中:

可以使用 FORMAT_ABBREV_RELATIVE 标志来使用缩写的相对时间, 比如“42 分钟前”。

但我找不到让 FORMAT_ABBREV_RELATIVE 工作的方法...我总是得到“42 分钟前”,我的字符串从不缩写。

这是我的代码:

DateUtils.getRelativeTimeSpanString(
    message.getCreationDateTime().getTime(),
    System.currentTimeMillis(),
    DateUtils.MINUTE_IN_MILLIS,
    DateUtils.FORMAT_ABBREV_RELATIVE
)

你能告诉我我做错了什么吗?

提前谢谢你。

编辑:

事实上,当我的手机是英文而不是法文时,我发现它可以工作,我得到“I y a 42 minutes”,很长。有人知道适用于多种语言的解决方案吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    您的设备语言设置是什么?我正在使用英语(美国)并使用以下代码得到“42 分钟前”

    DateUtils.getRelativeTimeSpanString(
    System.currentTimeMillis() - 42 * 60 * 1000,
    System.currentTimeMillis(),
    DateUtils.MINUTE_IN_MILLIS,
    DateUtils.FORMAT_ABBREV_RELATIVE)
    

    【讨论】:

    • 我检查了,你的权利,它是英文的!当我的手机是法语时,它不工作,它说“Il y a 42 minutes”,这很长......你知道这个工作方法吗?
    • 这种API会一直适配操作系统的语言设置,如果你想让它一直显示英文,你可以自己实现这个功能,也可以在你的应用程序中覆盖locale。您可以查看此链接:stackoverflow.com/a/26864311/4805308
    • 你的回答很有趣,我想我会把它用于其他语言。但是,我的主要问题是我无法使用我的应用程序的主要语言法语。
    • 就像我上面提到的,您可以自己实现该功能,将时间戳转换为英文字符串。这并不难。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    相关资源
    最近更新 更多