首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取自Java中的Epoch以来的天数、周数和月数

获取自Java中的Epoch以来的天数、周数和月数
EN

Stack Overflow用户
提问于 2011-05-28 05:48:58
回答 7查看 43.9K关注 0票数 31

我正在尝试获取Java时代以来的天数、周数、月数。

Java Calendar类提供了像calendar.get(GregorianCalendar.DAY_OF_YEAR)或Calendar.get(GregorianCalendar.WEEK_OF_YEAR)这样的东西,这是一个很好的开始,但它并不能完全满足我的需求。

在Java中有没有一种优雅的方式来实现这一点呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-28 06:18:26

您可以很容易地使用Joda Time library来完成这项工作-除了使用标准的Java Date和Calendar类之外,我还将它用于任何与时间相关的事情。下面是使用该库的示例:

代码语言:javascript
复制
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());

当我运行这个命令时,我得到了以下输出:

代码语言:javascript
复制
Days Since Epoch: 15122
Weeks Since Epoch: 2160
Months Since Epoch: 496
票数 35
EN

Stack Overflow用户

发布于 2016-02-26 16:43:09

java.time

使用Java8和更高版本中内置的java.time类。

代码语言:javascript
复制
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));

输出

代码语言:javascript
复制
Days: 16857
Weeks: 2408
Months: 553
票数 30
EN

Stack Overflow用户

发布于 2018-11-14 23:51:08

我有点惊讶,几乎所有的答案实际上都是计算epochnow之间的天数。有了java.time.LocalDate,它就像这样简单:

代码语言:javascript
复制
LocalDate.now().toEpochDay()
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6158053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档