Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

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

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

Добрый день,
Нужно мне было из String времени достать отдельно дату и отдельно время.
День-месяц-год вытянуть получилось, а вот время - нет.
Пример, как хронится дата:
2015-05-06 11:06:00
Java
1
2
3
4
5
6
7
8
9
10
System.out.println(list.get(i).getStartDate());
SimpleDateFormat stf = new SimpleDateFormat("HH:mm");
String startTime = list.get(i).getStartDate();
try {
    startTime = stf.format(stf.parse(startTime)).toString();
    System.out.println("Time: " + startTime);
} catch (java.text.ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}
Таким-же способом вытягивал дату:
Java
1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Так-же и получил и отформатировал текужее время, и результат такой, как мне и надо.
Но вот со временем из базы данных проблемка..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2015, 09:57     Форматирование времени
Посмотрите здесь:

Странное форматирование в Eclipse - Программирование Android
Добрый день! Запустив сегодня Eclipse, вдруг вижу странное форматирование во всех проектах (на картинке). Вчера вечером всё было...

Форматирование строки, полученной из БД - Программирование Android
Доброго времени суток! Сразу скажу, что пытался найти, как выполнить форматирование строки, но нашел только способ, когда в Strings...

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

Форматирование времени - C#
Подскажите пожалуйста. В определенный момент времени я сохраняю текущее время public DateTime dt1 = DateTime.Now Затем через некоторое...

Форматирование времени - Delphi
Всем Привет, помогите разобраться.. Есть переменная String в ней записано время в формате '00:00:00' (часы:минуты:секунды) мне...

.NET 4.x Обратное форматирование времени - Visual Basic .NET
Здравствуйте, уважаемые коллеги! Вопрос: вот так перевёл время в строковое представление: Dim UserHour As Date = Now UserHour =...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
01.06.2015, 10:54     Форматирование времени #2
Цитата Сообщение от edogaafx Посмотреть сообщение
Пример, как хронится дата:
Что делает? Мб хранится?
Regex может поможет?
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 10:58  [ТС]     Форматирование времени #3
А без Regex никак?
Просто, дата и текущее время ведь парсируется..
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
01.06.2015, 11:01     Форматирование времени #4
Regex и есть парсинг, пара строк, написать чтоли?
На вход "2015-05-06 11:06:00" как должно быть в итоге? На выход что?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
01.06.2015, 11:03     Форматирование времени #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
edogaafx, дата всегда в таком формате? Если да можно так:
Java
1
2
3
4
    String srcDate = ...;//Исходная дата.
    String[] srcDateArray = srcDate.split(" ");
    String date = srcDateArray[0];
    String time = srcDateArray[1];
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 11:03  [ТС]     Форматирование времени #6
в итоге - часы и минуты "11:06".
Spelcrawler, спасибо, работает.
а отнимать время, например, нынешнее время - время события, удобно после таких операций?
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
01.06.2015, 11:44     Форматирование времени #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 сетить время и там отнимать.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
01.06.2015, 11:45     Форматирование времени #8
Цитата Сообщение от Rube Посмотреть сообщение
Для отнимать время нужно в Calendar сетить время и там отнимать.
Ага, а еще лучше хранить время в unix time. Тогда вообще проблем никаких не будет.
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 11:48  [ТС]     Форматирование времени #9
Я сделал как-то по другому.
Тот пример, чт опоказал Spelcrawler, я из времени взял часы и парс в Инт.
Отнять их смог. Как-раз, что-бы я смог сделать то, что задумал.
Спасибо Rube, и Spelcrawler, за помощь!
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
01.06.2015, 12:41     Форматирование времени #10
Цитата Сообщение от edogaafx Посмотреть сообщение
Как-раз, что-бы я смог сделать то, что задумал.
А теперь отними 3 часа из 02:00, что будет?
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 12:47  [ТС]     Форматирование времени #11
вроде всё нормально. я забираю только часы, т.е. 01,02,..23,24..
Сейчас проверял, вроде всё отнимает как надо. 03 - 12 = -9, например.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
01.06.2015, 12:48     Форматирование времени #12
edogaafx, эмм, а -9 часов это нормально?
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
01.06.2015, 12:49  [ТС]     Форматирование времени #13
Нет, но мне и не надо число, мне надо, что-бы число попадало в определённый радиус.

Java
1
result >= 0 && result <= 3
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
01.06.2015, 12:52     Форматирование времени #14
Короче свои заморочки Работает и ладно, как говорил Сократ
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 пункту.
Как-то так.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
01.06.2015, 12:58     Форматирование времени #16
edogaafx, а если сейчас 23:00, а ивент назначен на 02:00?
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
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 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){
//Показать уведомление.
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2015, 13:16     Форматирование времени
Еще ссылки по теме:

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

Форматирование даты и времени - C# ASP.NET
Где-то пол-года назад возникло желание создать какой-нибудь 'интерактивный' сайт. Посмотрев на разные технологии, решил начать с ASP и тут...

условном форматирование для времени - MS Access
Добрый день. Подскажите как в условном форматирование в access 2007 можно прописать значение больше 4 часов. То есть, время которое...

Странное форматирование (вывод) времени - PHP
Пытаюсь вывести локальное время. К времени time прибавляю кол-во минут умноженных на 60 (т.е. секунды). Вывод времени неверен. Почему...


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

Или воспользуйтесь поиском по форуму:
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 пункту.
Как-то так.
Yandex
Объявления
01.06.2015, 13:16     Форматирование времени
Ответ Создать тему
Опции темы

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