我正在尝试获取Java时代以来的天数、周数、月数。
Java Calendar类提供了像calendar.get(GregorianCalendar.DAY_OF_YEAR)或Calendar.get(GregorianCalendar.WEEK_OF_YEAR)这样的东西,这是一个很好的开始,但它并不能完全满足我的需求。
在Java中有没有一种优雅的方式来实现这一点呢?
发布于 2011-05-28 06:18:26
您可以很容易地使用Joda Time library来完成这项工作-除了使用标准的Java Date和Calendar类之外,我还将它用于任何与时间相关的事情。下面是使用该库的示例:
MutableDateTime epoch = new MutableDateTime();
epoch.setDate(0); //Set to Epoch time
DateTime now = new DateTime();
Days days = Days.daysBetween(epoch, now);
Weeks weeks = Weeks.weeksBetween(epoch, now);
Months months = Months.monthsBetween(epoch, now);
System.out.println("Days Since Epoch: " + days.getDays());
System.out.println("Weeks Since Epoch: " + weeks.getWeeks());
System.out.println("Months Since Epoch: " + months.getMonths());当我运行这个命令时,我得到了以下输出:
Days Since Epoch: 15122
Weeks Since Epoch: 2160
Months Since Epoch: 496发布于 2016-02-26 16:43:09
java.time
使用Java8和更高版本中内置的java.time类。
LocalDate now = LocalDate.now();
LocalDate epoch = LocalDate.ofEpochDay(0);
System.out.println("Days: " + ChronoUnit.DAYS.between(epoch, now));
System.out.println("Weeks: " + ChronoUnit.WEEKS.between(epoch, now));
System.out.println("Months: " + ChronoUnit.MONTHS.between(epoch, now));输出
Days: 16857
Weeks: 2408
Months: 553发布于 2018-11-14 23:51:08
我有点惊讶,几乎所有的答案实际上都是计算epoch和now之间的天数。有了java.time.LocalDate,它就像这样简单:
LocalDate.now().toEpochDay()https://stackoverflow.com/questions/6158053
复制相似问题