我正在寻找一种高性能的Java库,该库提供的方法可以使我获得:


当前时间(0-24)
当日(1-31)
本周(1-52)
当月(1-12)
当前赛季(1-4)
当年(YYYY或YY)


表现对我来说是最重要的问题。这就是为什么我不能使用标准Calendar类的原因。最好的解决方案是在不创建新对象的情况下进行所有计算。

添加:为澄清起见,我将再提到一次:每秒超过100000次操作。

最佳答案

您实际上可以使用出色的joda-time库来执行此操作。 joda中的Chronology实现提供了DateTime getHour getDay类型方法背后的逻辑。如果您希望跳过创建DateTime瞬间,则直接使用它没有问题。

long msSinceEpoch = System.currentTimeMillis();

Chronology chronology = ISOChronology.getInstanceUTC() // This can be static

chronology.hourOfDay().get(msSinceEpoch);
chronology.dayOfMonth().get(msSinceEpoch);
chronology.weekOfWeek().get(msSinceEpoch);
chronology.monthOfYear().get(msSinceEpoch);
chronology.years().get(msSinceEpoch);


会话不是joda的概念。给定自己的规则,您必须从一个月起进行计算。

joda-time documentation on Chronology

09-25 20:58