首页 > 解决方案 > 打印根据语言环境翻译的与时间相关的字符串,如“今天”和“昨天”?

问题描述

我正在寻找一种方法来打印与时间相关的字符串,例如在 Android 应用程序中翻译成用户的语言环境(即语言)的“今天”和“昨天”。

我曾尝试使用DateUtils.getRelativeDateTimeString但它不考虑语言环境,或者至少在运行时无法更改它。我需要类似于 SimpleDateFormat 的现有构造函数的东西:

public SimpleDateFormat(String pattern, Locale locale)

当然,可以在每种语言中添加每个单词的翻译,但是假设这些单词确实存在于操作系统中,没有更好的方法。

有没有办法做到这一点?

编辑: 我正在尝试做类似于 iOS 上的日期选择器的事情:

标签: javaandroidsimpledateformatdate-format

解决方案


通过@Meno Hochschild 的评论,我能够通过以下方式解决它:

  1. 添加Time4A 库
  2. 制作了UnitPatterns.java的本地副本并将其公开。
  3. 像这样使用它:

UnitPatterns.of(locale).getTodayWord(); // returns "today" UnitPatterns.of(locale).getYesterdayWord(); // returns "yesterday"


推荐阅读