我必须执行以下要求:
将提供的数据如下:
year - for example (1997)
no of days passed - for example (365)
使用上述数据我必须找出1997年过去365天的哪一天。 答案将是: 1997 - 31 - 12(1997年12月31日)。
是否有获取此值的快捷方式?
答案 0 :(得分:4)
您可以将日历类用于此目的,YEAR
和DAY_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);