Возвращение базы данных SQLite 1970-01-01 - PullRequest
0 голосов
/ 06 июня 2019

Я работаю над приложением для покупок и пытаюсь настроить функцию профиля пользователя. Пользователи могут зарегистрировать учетную запись с датой, сохраненной в учетной записи. Я использовал базу данных SQLite для хранения, и она успешно сохранила правильную дату, но когда я получаю, она всегда возвращает меня 1970-01-01 независимо от того, что я сохранил.

Я использую java.utils.Date

Это база данных:


private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "("
        + COLUMN_USER_NO + " INTEGER PRIMARY KEY AUTOINCREMENT,"
        + COLUMN_USERNAME + " TEXT," + COLUMN_PASSWORD + " TEXT,"
        + COLUMN_TELEPHONE + " TEXT," + COLUMN_ADDRESS + " TEXT,"
        + COLUMN_CREDITCARD_NO + " INTEGER," + COLUMN_SECURITY_NO + " INTEGER,"
        + COLUMN_EXPIRY_DATE + " LONG," + COLUMN_RATING + " INTEGER, "
        + COLUMN_TOTAL_RATED_BY + " INTEGER" + ")";

Вот как я получаю данные пользователя:


public User getUser(String username) {

    // array of columns to fetch
    String[] columns = {
            COLUMN_USER_NO,
            COLUMN_USERNAME,
            COLUMN_PASSWORD,
            COLUMN_TELEPHONE,
            COLUMN_ADDRESS,
            COLUMN_CREDITCARD_NO,
            COLUMN_SECURITY_NO,
            COLUMN_EXPIRY_DATE,
            COLUMN_RATING,
            COLUMN_TOTAL_RATED_BY
    };

    String sortOrder = COLUMN_USER_NO + " ASC";

    String selection = COLUMN_USERNAME + " =?";

    String[] selectionArgs = {username};

    SQLiteDatabase db = this.getReadableDatabase();

    // query the user table
    /**
     * Here query function is used to fetch records from user table this function works like we use sql query.
     * SQL query equivalent to this query function is
     * SELECT user_no,user_name,user_email,password FROM user ORDER BY user_name;
     */
    Cursor cursor = db.query(TABLE_USER,
            columns,    //columns to return
            selection,        //columns for the WHERE clause
            selectionArgs,        //The values for the WHERE clause
            null,       //group the rows
            null,
            sortOrder);       //filter by row groups

        if (cursor != null) {
            cursor.moveToFirst();
        }
        User u1 = new User();
        u1.setUserNo(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_USER_NO))));
        u1.setUsername(cursor.getString(cursor.getColumnIndex(COLUMN_USERNAME)));
        u1.setPassword(cursor.getString(cursor.getColumnIndex(COLUMN_PASSWORD)));
        u1.setTelephone(cursor.getString(cursor.getColumnIndex(COLUMN_TELEPHONE)));
        u1.setAddress(cursor.getString(cursor.getColumnIndex(COLUMN_ADDRESS)));
        u1.setCreditCardNo(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_CREDITCARD_NO))));
        u1.setSecurityNo(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_SECURITY_NO))));
        u1.setExpiryDate(new Date(cursor.getLong(cursor.getColumnIndex(COLUMN_EXPIRY_DATE))));
        u1.setRating(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_RATING))));
        u1.setTotalRatedBy(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_TOTAL_RATED_BY))));

     return u1;

}


И это строка, которую я использовал для получения даты от определенного пользователя:


mTextViewProfileCreditCardExpiryDate.setText(user.getExpiryDate());


Как я могу получить правильную сохраненную дату?

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