有没有像“Q”这样的定域常数;今天",&引用;“明天”&引用;“昨天”;Joda或Java日期和时间API中的etc?

有没有像“Q”这样的定域常数;今天",&引用;“明天”&引用;“昨天”;Joda或Java日期和时间API中的etc?,java,datetime,jodatime,Java,Datetime,Jodatime,我必须实现的功能,使该网站的客户看到最近的交付日期可能。举几个例子: 今日6月20日交货 明日6月21日交货 6月24日星期二交货 问题是这个属性在6种不同的语言中本地化,我想知道是否有一种方法不为时间副词(如“今天”和“明天”)创建本地化属性?可能有任何预定义的常量或枚举?您可以使用;它返回所需属性的本地化字符串 这就是如何获得所需属性的字符串 Calendar cal = Calendar.getInstance(); String <attribute_localized> =

我必须实现的功能,使该网站的客户看到最近的交付日期可能。举几个例子:

今日6月20日交货

明日6月21日交货

6月24日星期二交货

问题是这个属性在6种不同的语言中本地化,我想知道是否有一种方法不为时间副词(如“今天”和“明天”)创建本地化属性?可能有任何预定义的常量或枚举?

您可以使用;它返回所需属性的本地化字符串

这就是如何获得所需属性的字符串

Calendar cal = Calendar.getInstance();
String <attribute_localized> = cal.getDisplayName(Calendar.<attribute>, Calendar.LONG, Locale.<your_locale>);

仅供参考,无论是标准Java还是Joda Time都没有这样的功能

但是,我的lib支持90多种语言中的相关表达式,如“今天”、“明天”、“昨天”或“下周日”。使用测试时钟的示例:

  TimeSource<?> clock = () -> PlainTimestamp.of(2015, 8, 1, 10, 24, 5).atUTC();
  String durationInDays =
      PrettyTime.of(Locale.GERMAN).withReferenceClock(clock).printRelative(
          PlainTimestamp.of(2015, 8, 1, 17, 0).atUTC(),
          Timezone.of(EUROPE.BERLIN),
          TimeUnit.DAYS);
  System.out.println(durationInDays); // heute (german word for today)
timesourceclock=()->PlainTimestamp.of(2015,8,1,10,24,5).atUTC();
字符串持续时间=
PrettyTime.of(Locale.GERMAN).带参考锁(时钟).printRelative(
PlainTimestamp.of(2015,8,1,17,0).atUTC(),
(欧洲、柏林)时区,
时间单位(天);
System.out.println(持续时间);//heute(今天的德语单词)
您还可以通过调用以下方法获得这些表达式的单个翻译
或者
printNext(工作日)
等。如果您使用的是Android,您可以使用姐妹项目Time4A。还提供了支持的语言列表。如果您错过了一门语言,请告诉我。

您是否尝试过搜索或搜索?甚至它本身?我不认为你是世界上唯一需要这些东西的人。所以这不是一个关于日期处理的问题,而是一些与日期相关的单词的翻译/本地化问题?@Zephyr,你不明白这个问题。我需要像“今天”或“明天”这样的词的本地化常量。据我所知,JavaSE中没有这样的东西。不过,如果你还需要翻译“今天”这样的词,我认为日历中没有这样的关键词;最好的方法可能是将字符串本地化为您需要的所有语言,但这并不能解决这个问题。本地化的DateFormat或DateFormatter会做得更好。
  TimeSource<?> clock = () -> PlainTimestamp.of(2015, 8, 1, 10, 24, 5).atUTC();
  String durationInDays =
      PrettyTime.of(Locale.GERMAN).withReferenceClock(clock).printRelative(
          PlainTimestamp.of(2015, 8, 1, 17, 0).atUTC(),
          Timezone.of(EUROPE.BERLIN),
          TimeUnit.DAYS);
  System.out.println(durationInDays); // heute (german word for today)