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

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

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

Передача даты в базу данных - Android

26.02.2014, 10:58. Просмотров 828. Ответов 9
Метки нет (Все метки)

как из массива строк и в каком формате записать в бд в столбец типа date дату?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.02.2014, 12:28     Передача даты в базу данных #2
evgmur,
Есть несколько вариантов:
1. Хранить дату как long (timestamp).
your_date.getTime() -> в базу
new Date(timestamp) -> из базы

2. Использовать форматирование:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Parser {
 
    public static final String SQL_DATE_PATTERN = "yyyy-MM-dd";
    private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat(SQL_DATE_PATTERN);
 
    public static String getStringFromDate(Date date) {
        if (date == null) return null;
        return DATE_FORMATTER.format(date);
    }
 
    public static Date getDateFromString(String date) {
        if (date == null) return null;
        try {
            return DATE_FORMATTER.parse(date);
        } catch (ParseException e) {
            return null;
        }
    }
 
}
т.е. сохранять её как строку
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
26.02.2014, 12:42  [ТС]     Передача даты в базу данных #3
а какой из этих вариантов лучше? дата и время нужно будут хранить в формате день. месяц. год часы:минуты
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.02.2014, 13:15     Передача даты в базу данных #4
evgmur, на Ваш вкус. Я бы выбрал второй.

Цитата Сообщение от evgmur Посмотреть сообщение
день. месяц. год часы:минуты
Как вариант
Java
1
public static final String SQL_DATE_PATTERN = "dd.MM.yyyy HH:mm"
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.02.2014, 00:04     Передача даты в базу данных #5
Я бы дату хранил отдельно от времени. Иногда это полезно при дальнейших выборках в БД
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.02.2014, 11:14     Передача даты в базу данных #6
dubok79, если используется выборка по времени, я бы хранил её в long
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
27.02.2014, 15:44  [ТС]     Передача даты в базу данных #7
а можете подробнее написать, как преобразовать из строки формата dd.MM.yyyy HH:mm в дату тип long?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.02.2014, 18:54     Передача даты в базу данных #8
evgmur, date.getTime()

в обратную сторону можно new Date(milis);
evgmur
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 31
27.02.2014, 19:12  [ТС]     Передача даты в базу данных #9
если возможно, то буду очень благодарен за пример
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 12:41     Передача даты в базу данных
Еще ссылки по теме:

Добавление таблиц в базу данных Android
Android Загрузить собственную базу данных
Android Собрать проект использующий базу данных в apk
Создать базу данных по нажатию кнопки Android
Android Studio Как подключить свою базу данных Android

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

Или воспользуйтесь поиском по форуму:
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
28.02.2014, 12:41     Передача даты в базу данных #10
Цитата Сообщение от evgmur Посмотреть сообщение
а можете подробнее написать, как преобразовать из строки формата dd.MM.yyyy HH:mm в дату тип long?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
 
public class OtherTest {
 
    public static void main(String[] args) {
        //dd.MM.yyyy HH:mm
        String string = "28.02.2014 14:36";
        Date date = null;
        try {
            date = new SimpleDateFormat("dd.MM.yyyy kk:mm", Locale.getDefault()).parse(string);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date); // напечатает Fri Feb 28 14:36:00 MSK 2014
        System.out.println(date.getTime()); // напечатает 1393583760000
 
    }
 
}
Yandex
Объявления
28.02.2014, 12:41     Передача даты в базу данных
Ответ Создать тему
Опции темы

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