currentTimeMillis () - годы, дни, минуты и обратные слова.(жесткий) - PullRequest
5 голосов
/ 04 ноября 2011

Мне нужно System.currentTimeMillis() преобразовать в 3 переменные:

int Years;
int DaysMonths;
int MinutesHours;

Что я имею в виду под DayMonths, а MinutesHours это, скажем, например, у нас есть 2 часа.Тогда MinutesHours должно равняться 120 (потому что 2 часа = 120 минут).Но как только он достигнет 24 часов, он должен быть равен 0 и перейти к DaysMonths.То же самое для переменной DaysMonths.

И мне также нужно знать, как перевернуть эту вещь.Используя эти 3 переменные, мне нужен другой метод, чтобы получить от них System.currentTimeMillis().

Мне трудно объяснить это, но я надеюсь, вы понимаете, о чем я.Я действительно ненавижу иметь дело со временем в Java.Это не мое, но мне очень нужно это для игрового проекта.

Ответы [ 2 ]

16 голосов
/ 04 ноября 2011

Создать объект календаря:

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

После этого вы можете получить поля из объекта календаря:

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();
2 голосов
/ 04 ноября 2011

Пожалуйста, рассмотрите возможность использования этой библиотеки.

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

Она имеет множество полезных функций манипулирования датой и временем, которыедействительно просто!

 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...