Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

Форматирование времени - Программирование Android

01.06.2015, 09:57. Просмотров 434. Ответов 18
Метки нет (Все метки)


http://www.cyberforum.ru/android-dev/thread1725842.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2015, 09:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Форматирование времени (Программирование Android):

Странное форматирование в Eclipse
Добрый день! Запустив сегодня Eclipse, вдруг вижу странное форматирование во...

Форматирование даты из строки
Есть строковая дата вида "2016-01-13 13:15:00", как из нее сделать вот это 13...

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

Форматирование текста и действие по нажатию кнопки назад
День добрый! Столкнулся с такой проблемой: -есть текст и его надо выровнять...

DS1302 часы реального времени форматирование времени
Здравствуйте. Возникла необходимость в форматировании времени каким образом...

18
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
01.06.2015, 10:54 #2
Цитата Сообщение от edogaafx Посмотреть сообщение
Пример, как хронится дата:
Что делает? Мб хранится?
Regex может поможет?
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 10:58  [ТС] #3
А без Regex никак?
Просто, дата и текущее время ведь парсируется..
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
01.06.2015, 11:01 #4
Regex и есть парсинг, пара строк, написать чтоли?
На вход "2015-05-06 11:06:00" как должно быть в итоге? На выход что?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.06.2015, 11:03 #5
Лучший ответ Сообщение было отмечено edogaafx как решение

Решение

edogaafx, дата всегда в таком формате? Если да можно так:
Java
1
2
3
4
    String srcDate = ...;//Исходная дата.
    String[] srcDateArray = srcDate.split(" ");
    String date = srcDateArray[0];
    String time = srcDateArray[1];
2
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 11:03  [ТС] #6
в итоге - часы и минуты "11:06".
Spelcrawler, спасибо, работает.
а отнимать время, например, нынешнее время - время события, удобно после таких операций?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
01.06.2015, 11:44 #7
Лучший ответ Сообщение было отмечено edogaafx как решение

Решение

Java
1
2
3
Pattern p = Pattern.compile(".+(\\d{2}:\\d{2}):.+");
Matcher m = p.matcher("2015-05-06 11:06:00");
if (m.matches()) System.out.println(m.group(1));
Для отнимать время нужно в Calendar сетить время и там отнимать.
2
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.06.2015, 11:45 #8
Цитата Сообщение от Rube Посмотреть сообщение
Для отнимать время нужно в Calendar сетить время и там отнимать.
Ага, а еще лучше хранить время в unix time. Тогда вообще проблем никаких не будет.
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 11:48  [ТС] #9
Я сделал как-то по другому.
Тот пример, чт опоказал Spelcrawler, я из времени взял часы и парс в Инт.
Отнять их смог. Как-раз, что-бы я смог сделать то, что задумал.
Спасибо Rube, и Spelcrawler, за помощь!
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
01.06.2015, 12:41 #10
Цитата Сообщение от edogaafx Посмотреть сообщение
Как-раз, что-бы я смог сделать то, что задумал.
А теперь отними 3 часа из 02:00, что будет?
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 12:47  [ТС] #11
вроде всё нормально. я забираю только часы, т.е. 01,02,..23,24..
Сейчас проверял, вроде всё отнимает как надо. 03 - 12 = -9, например.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.06.2015, 12:48 #12
edogaafx, эмм, а -9 часов это нормально?
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 12:49  [ТС] #13
Нет, но мне и не надо число, мне надо, что-бы число попадало в определённый радиус.

Java
1
result >= 0 && result <= 3
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
01.06.2015, 12:52 #14
Короче свои заморочки Работает и ладно, как говорил Сократ
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 12:56  [ТС] #15
Мне это время нужно было, что-бы пользователя предупредить о Ивенте, который будет в ближайшие 3 часа.
Я веду проверку:
1. в фаворитах ли у пользователя ивент;
2. совпадает ли дни, т.е. сегодня ли ивент;
3. Попадает ли время в этот интервал
Java
1
result >= 0 && result <= 3
?
3.1. Если да, то кинуть нотификацию;
3.2. Если нет, то через 3 часа вернёмся к 1 пункту.
Как-то так.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.06.2015, 12:58 #16
edogaafx, а если сейчас 23:00, а ивент назначен на 02:00?
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 13:02  [ТС] #17
Spelcrawler, тогда.
Например,
Java
1
2
3
4
5
6
a = 02;
b = 23;
result = 02 - 23;
result = -21;
//как-то сделать -21 позитивным
24 - 21 = 3;
как-то так надо теперь сделать...
Даже позитивным делать -21 не надо.
24 + (-21) = 3
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.06.2015, 13:13 #18
edogaafx, всетаки с временем в миллисекундах проще, можно просто вычитать эти же миллисекунды и все:
Java
1
2
3
4
5
long eventTime = ...;
long notificationInterval = 1000 * 60 * 60 * 3;//3 часа.
if((eventTime - System.currentTimeInMillis()) <= notificationInterval){
//Показать уведомление.
}
0
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 13:16  [ТС] #19
Ну, у меня так:
Место где устанавливаю время работы нотификации:
Java
1
2
alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + THREE_HOURS,
                THREE_HOURS, pendingIntent);
Константа с временем:
Java
1
final int THREE_HOURS = 60000 * 60 * 3; // millis, minutes, hours
А вся та возня с цифрами была для проверки, нужно ли нотификацию показывать или нет.
Мне это время нужно было, что-бы пользователя предупредить о Ивенте, который будет в ближайшие 3 часа.
Я веду проверку:
1. в фаворитах ли у пользователя ивент;
2. совпадает ли дни, т.е. сегодня ли ивент;
3. Попадает ли время в этот интервал
Код Java(TM) 2 Platform Standard Edition 5.0

1



result >= 0 && result <= 3

?
3.1. Если да, то кинуть нотификацию;
3.2. Если нет, то через 3 часа вернёмся к 1 пункту.
Как-то так.
0
01.06.2015, 13:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 13:16
Привет! Вот еще темы с решениями:

Форматирование времени
Подскажите пожалуйста. В определенный момент времени я сохраняю текущее время ...

Форматирование времени
Всем Привет, помогите разобраться.. Есть переменная String в ней записано...

Перевод и форматирование времени
Всем привет! Ребят помогите реализовать следующее: Например имеем 0,02869...

Форматирование даты и времени
Где-то пол-года назад возникло желание создать какой-нибудь 'интерактивный'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru