使用特定年份的天数获取一年中的某个月和一周中的某一天

时间:2014-01-09 10:20:00

标签: java date datetime

我必须执行以下要求:

将提供的数据如下:

year   -  for example (1997)
no of days passed - for example (365)

使用上述数据我必须找出1997年过去365天的哪一天。 答案将是: 1997 - 31 - 12(1997年12月31日)

是否有获取此值的快捷方式?

4 个答案:

答案 0 :(得分:4)

您可以将日历类用于此目的,YEARDAY_OF_YEAR作为参数传递:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1997);
cal.set(Calendar.DAY_OF_YEAR, 365);
System.out.println(cal.getTime());

您也可以根据自己的喜好对其进行格式化:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-dd-MM");
System.out.println(dateFormat.format(cal.getTime()));

<强>输出:

  

1997-31-12

答案 1 :(得分:1)

使用JodaTime

DateTime from = new DateTime(1997, 1, 1, 0, 0); // 1997-01-01T00:00:00
DateTime to = from.plusDays(365);
// then you can print "to", use it...

答案 2 :(得分:0)

使用JodaTime:

String date = new LocalDate(1997,1,1).plus(Days.days(365-1))。toString(&#34; yyyy-MM-dd&#34;);         的System.out.println(日期);

答案 3 :(得分:0)

使用threeten(jodatime的继任者)或Java 8,你可以写:

LocalDate result = LocalDate.of(1997,1,1).withDayOfYear(365);