java - 打印根据语言环境翻译的与时间相关的字符串,如“今天”和“昨天”?
问题描述
我正在寻找一种方法来打印与时间相关的字符串,例如在 Android 应用程序中翻译成用户的语言环境(即语言)的“今天”和“昨天”。
我曾尝试使用DateUtils.getRelativeDateTimeString但它不考虑语言环境,或者至少在运行时无法更改它。我需要类似于 SimpleDateFormat 的现有构造函数的东西:
public SimpleDateFormat(String pattern, Locale locale)
当然,可以在每种语言中添加每个单词的翻译,但是假设这些单词确实存在于操作系统中,没有更好的方法。
有没有办法做到这一点?
编辑:
我正在尝试做类似于 iOS 上的日期选择器的事情:
解决方案
通过@Meno Hochschild 的评论,我能够通过以下方式解决它:
- 添加Time4A 库。
- 制作了UnitPatterns.java的本地副本并将其公开。
- 像这样使用它:
UnitPatterns.of(locale).getTodayWord(); // returns "today"
UnitPatterns.of(locale).getYesterdayWord(); // returns "yesterday"
推荐阅读
- synchronization - Synology 到 TrueNAS 异地同步
- asp.net-core - ASP.NET Core:如何使用 ADO.NET(无实体框架)的工作单元创建通用存储库模式
- python - SQL Server 的 Python 数据库错误
- android - 如何操作数组/索引 [已解决]
- c# - 如何在 C# 中的 ActiveMdiChild 中仅设置字体系列或字体大小
- list - 创建多个列表并将它们存储到字典 Python
- c++ - 为什么我无法计算结果?
- flutter - XCode不断搜索flutter windows路径
- docker - 在 docker-compose 中运行多个 sut 测试
- python - 发送命令,但我收到错误 discord.py