我正在寻找一种方法来打印与时间相关的字符串,如"今天"和"昨天"在Android应用程序中翻译为用户的区域设置(即语言)。
我试过使用DateUtils.getRelativeDateTimeString但是它 不考虑语言环境,或者至少在运行时不能更改它。我需要类似于SimpleDateFormat的现有构造函数的东西:
public SimpleDateFormat(String pattern, Locale locale)
当然,可以在每种语言中添加每个单词的翻译,但假设单词实际存在于操作系统中,则没有更好的方法。
有没有办法实现这个目标?
修改
我试图在iOS上做类似于日期选择器的事情:
答案 0 :(得分:2)
通过@Meno Hochschild的评论,我能够通过以下方式解决它:
UnitPatterns.of(locale).getTodayWord(); // returns "today"
UnitPatterns.of(locale).getYesterdayWord(); // returns "yesterday"
答案 1 :(得分:0)
这似乎是一个翻译问题, 不是日期格式问题。
您的应用将包含要向用户显示的消息。 这些消息需要翻译成您的目标语言。 一旦知道了要显示的消息, 然后检索然后使用区域设置显示本地化(即已翻译)的消息(Android支持该消息)。
你可能真的想要显示单词"明天"或者"昨天"。 代替, 你可能想要显示像"明天等等#34;要么 "对不起等等等等等等等等#34; 翻译整个邮件, 不只是单独的单词。
其他信息 我认为你确实需要翻译"今天"进入每种目标语言。 并且,您需要将每个与日期相关的字符串翻译成每种目标语言(我的意思是" Tue May 1和#34;需要翻译成每种语言)。 有"技巧"您可以使用。 选择" base"字符串的一部分,并使用其他部分的占位符。 占位符, 因为不同的语言可能有不同的订单 "星期几日和#34;