Android Time Структуры - PullRequest
       1

Android Time Структуры

0 голосов
/ 09 декабря 2010

У меня есть класс, в котором я хотел бы хранить определенное время. Время будет использоваться для планирования выполнения задач. И сейчас я работаю с классом Time из android.text.format, но это не совсем то, что я ищу.

Я могу создавать отметки времени, но он дополняется датой, часовым поясом и т. Д.

Time startTime = new Time();
startTime.setToNow();

tvConsole.setText(startTime.toString());  // just to view it in the emulator

и результаты:

20101208T162807America/New_York(3,341,-18000,0,1291843687)

Мне не нужна вся эта информация, и при этом я не хочу ее. Есть ли способ просто получить доступ к членам чч / мм / сс? Я знаю, что могу установить только время объекта, но затем оно отображается как некоторая дата в 1970 году ... и я не могу получить только элементы времени. Есть ли другой класс, о котором я не знаю, с которым я могу сделать это?

Спасибо

Ответы [ 3 ]

3 голосов
/ 09 декабря 2010

Использовать поля времени:

Time startTime = new Time();
startTime.setToNow();

startTime.hour
startTime.minute
startTime.second

Если вам просто нужно отображаемое время (например, «1:59 pm»), тогда вы можете использовать DateUtils.

//Look at the different FORMAT_ flags on DateUtils.
String s = DateUtils.formatDateTime(this, startTime.toMillis(true),  
                                    DateUtils.FORMAT_SHOW_TIME);  
1 голос
/ 13 сентября 2011

Вы также можете использовать собственный формат времени:

Time startTime = new Time();
startTime.setToNow();

tvConsole.setText(startTime.format("%I:%M %P"));  // just to view it in the emulator

Все переменные, которые вы можете использовать, перечислены здесь: http://php.net/manual/en/function.strftime.php

0 голосов
/ 09 декабря 2010

После некоторого осмотра я нашел то, что искал. Ответ - класс Calendar. Я включил образец кода ниже.

DateFormat formatTime = DateFormat.getTimeInstance(); // set the format type
Calendar startTime = Calendar.getInstance(); // this line will store the current time
startTime.set(Calendar.HOUR_OF_DAY, 10);     // modify the time to something
startTime.set(Calendar.MINUTE, 30);
startTime.set(Calendar.SECOND, 40);

if (startTime.get(Calendar.HOUR_OF_DAY == 10)   // example of accessing data member
    tvConsole.setText(formatTime.format(startTime.getTime()));  // display

Это отобразит: 10:30:40 PM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...