2016-11-04 84 views
-1

我是Java新手,必须将使用datetime的Python脚本转换为Java程序。如何在Java中创建一个Calendar对象,该对象可以具有任何可能的年,月和日,例如2050年3月12日。我必须能够添加一定的天数 - 例如,03.12.2050 + 29天得到01.01.2051 - 我怎样才能在Java中做到这一点?类似于Python的Java日历datetime

这将是有用的,但不是必要的,如果日历类也可以代表儒略日期。

回答

0

你应该考虑使用java.time API(在Java中8中引入) - 这是更好,更容易比传统日历API使用。

适用于您的例子,它看起来像:

LocalDate d1 = LocalDate.of(2050, 12, 3); 
LocalDate d2 = d1.plusDays(29); // 2051-01-01 

它还支持Julian days,但不是儒略历,这是threeten-extras可用。

0

你查过GregorianCalendar

GregorianCalendar g = new GregorianCalendar(12,12,1994); 
g.add(GregorianCalendar.YEAR,2); 
+0

由于某种原因,我没有找到这个...谢谢你这就是我需要的......文档很难阅读......我如何返回这个日期的月份?是否有创建一个朱利安约会的可能性? – Blood

+0

您可以使用返回[Date](https://docs.oracle.com/javase/7/docs/api/java/util/Date.html)对象的getTime()方法。从那里你可以提取几天,一个月或一年(但这些是不推荐使用的方法) – slayne

+0

'code'a = new GregorianCalendar(2000,11,12); a.add(GregorianCalendar.DAY_OF_MONTH,30); System.out.println(a.get(GregorianCalendar.DAY_OF_MONTH)); System.out.println(a.get(GregorianCalendar.MONTH)); System.out.println(a.get(GregorianCalendar.YEAR));'code'为什么月份之间的变化不起作用? (或仅有时) – Blood