currentTimeMillis()到年,日,分钟和后缀。 (硬)

我需要将System.currentTimeMillis()转换为3个变量:

 int Years; int DaysMonths; int MinutesHours; 

我对DayMonthsMinutesHours是,比方说我们有2个小时。 然后MinutesHours应该等于120(因为2小时= 120分钟)。 但是一旦达到24小时,它应该是0并且将它传递给DaysMonths 。 DaysMonths变量也是如此。

而且我还需要知道如何让这件事情逆转。 使用这3个变量,我需要一个其他方法从它们获取System.currentTimeMillis()

我很难解释这个,但我希望你知道我的意思。 我真的很讨厌在java中处理时间。 这不是我的事,但我需要它对游戏项目来说真的很糟糕。

创建一个Calendar对象:

 long millis=System.currentTimeMillis(); Calendar c=Calendar.getInstance(); c.setTimeInMillis(millis); 

在此之后,您可以从Calendar对象获取字段:

 int hours=c.get(Calendar.HOUR); int minutes=c.get(Calendar.MINUTE); 

然后:

 int MinutesHours=(hours*60)+minutes; 

要返回,您可以在日历中使用set方法:

 Calendar c=Calendar.getInstance(); c.set(Calendar.MINUTE,minutes); long millis=c.getTimeInMillis(); 

请考虑使用此库。

http://joda-time.sourceforge.net/

它有很多有用的日期和时间操作function,非常简单!

  DateTime dt = new DateTime(2005, 3, 26, 12, 0, 0, 0); DateTime plusPeriod = dt.plus(Period.days(1)); DateTime plusDuration = dt.plus(new Duration(24L*60L*60L*1000L));