In meiner SQLite DataBase habe ich Datum in einem Datentyp DATE gespeichert. Wie kann ich dieses Datum vom Cursor holen?Datum aus Sqlite Datenbank in Android holen
Antwort
SQLite speichert eine Zeichenfolge, die die aktuelle Uhrzeit in UTC (GMT) darstellt, unter Verwendung des Datums/Uhrzeit-Formats ISO8601. Dieses Format (JJJJ-MM-TT HH: MM: SS) ist übrigens für Datums-/Zeitvergleiche geeignet.
Verwenden Sie den folgenden Code, um das Datum abzurufen.
Cursor row = databaseHelper.query(true, TABLE_NAME, new String[] {
COLUMN_INDEX}, ID_COLUMN_INDEX + "=" + rowId,
null, null, null, null, null);
String dateTime = row.getString(row.getColumnIndexOrThrow(COLUMN_INDEX));
Dies liefert einen String, analysieren sie und umformatieren zu Ihrem lokalen Format und Zeitzone:
DateFormat iso8601Format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = iso8601Format.parse(dateTime);
} catch (ParseException e) {
Log.e(TAG, "Parsing ISO8601 datetime failed", e);
}
long when = date.getTime();
int flags = 0;
flags |= android.text.format.DateUtils.FORMAT_SHOW_TIME;
flags |= android.text.format.DateUtils.FORMAT_SHOW_DATE;
flags |= android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
flags |= android.text.format.DateUtils.FORMAT_SHOW_YEAR;
String finalDateTime = android.text.format.DateUtils.formatDateTime(context,
when + TimeZone.getDefault().getOffset(when), flags);
Hope this Ihnen helfen.
dieser Code funktioniert
String s= cursor.getString(position);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date d=new Date();
try {
d= dateFormat.parse(s);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
YourObject.setDate(d);
perfekter Code, aber müssen geändert werden, um entsprechend ihrer Anforderung einzustellen.Ex: Datum ** TextView ** hinzuzufügen. ** textview.setText (dateformate.formate (d)) ** –
SQLite wirklich keine DATE
Typ haben (die DATE
Schlüsselwort bedeutet nur die Spalte eine NUMERIC
Affinität hat, pro Datatypes In SQLite Version 3), so ist es an Ihnen, eine Konvention zu wählen, wie Du wirst Daten speichern. Übliche Konventionen sind (a) die Verwendung reeller Zahlen zur Speicherung julianischer Daten oder (b) die Verwendung von ganzen Zahlen zur Speicherung einer Unix-Epoche (Sekunden seit 1970, die die SQLite-Datums- und Zeitfunktion mit dem Argument 'unixepoch' pro Date And Time Functions unterstützt).
Wenn Sie tun Speicherung Daten als Unix-Epoche (praktisch für Android seit .getTime()
auf einem Date
Objekt Aufruf gibt die Anzahl der Millisekunden seit 1970), dann lesen Sie das SQLite DATE
Feld als long
und die Millisekunden-äquivalent, dass passieren in den java.util.Date
Konstruktor Date(long milliseconds)
. So würde es ungefähr so aussehen:
SQLiteManager dbManager = new SQLiteManager(context, DB_NAME, null, VERSION);
SQLiteDatabase db = dbManager.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME,
new String[] { COLUMN_NAME_ID, COLUMN_NAME_DATE },
null, null, // selection, selectionArgs
null, null, null, null); // groupBy, having, orderBy, limit
try {
while(cursor.moveNext()) {
int id = cursor.getInt(0);
// Read the SQLite DATE as a long and construct a Java Date with it.
Date date = new Date(cursor.getLong(1)*1000);
// ...
}
} finally {
cursor.close();
db.close();
}
Dies ist meine bevorzugte Art, Daten in SQLite und Android zu verwenden. – Flash
Schön, aber ich bin ein wenig verwirrt .. Der Typ des Feldes in SQLite in diesem Fall sollte DATETIME oder INT oder DATE sein? –
- 1. wie man Datum in SqLite Datenbank in android
- 2. Großen Blob aus Android sqlite Datenbank abrufen
- 3. Android SQLite-Datenbank Formation
- 4. Einzelwert von SQLite in Android holen
- 5. In SQLite-Datenbank einfügen Android
- 6. Android SQLite-Datenbank
- 7. Synchronisieren android sqlite Datenbank
- 8. SQLite -> SQLite Datum Formatierungsprobleme
- 9. SQLite vs Remote-Datenbank?
- 10. Wie kann man Werte aus der Datenbank (Sqlite) mit Datum in Android abrufen?
- 11. ArrayList in SQLite-Datenbank in Android speichern
- 12. Anzeige Bild aus der SQLite-Datenbank mit Cursor in Android
- 13. Wie in sqlite android-Datenbank inkrementieren
- 14. android sqlite datenbank path.in realgerät
- 15. Android SQLite Datenbank und SharedPreferences
- 16. Löschen von Android SQLite Datenbank
- 17. Daten nicht in Sqlite-Datenbank in Android
- 18. Array in SQLite-Datenbank in Android einfügen
- 19. Lesen von SQLite-Datenbank Android
- 20. Android ExpandableListView und SQLite-Datenbank
- 21. Datenbank auf OnUpgrade Sqlite Android
- 22. Android SQLite-Datenbank: Langsame Einfügung
- 23. Android SQLite Datenbank Unit Testing
- 24. Erste Zufallsdaten von SQLite-Datenbank in android
- 25. große SQLite-Datenbank in Android-Anwendung
- 26. Daten aus SQLite-Datenbank abrufen?
- 27. SQLite-Datenbank und Radiobuttons in Android Studio
- 28. SQLite-Datenbank in Android und Java
- 29. Daten aus Datenbank aus verschiedenen Tabellen holen
- 30. Daten vergleichen (als String gespeichert) in Android SQLite-Datenbank?
hi Nagaraj436 Ich verwende Datentyp DATE für Spaltendatum. Also kann ich nicht verwenden cursor.getString –
@DeepakKataria Haben Sie versucht mit der getString()? Hast du Fehler dabei? – TNR
Verwenden Sie den Datentyp für Datum als Zeichenfolge, die Ihnen helfen würde, das gleiche zu tun. Wie gesagt von @ Nagaraj436, die hilft, das Datum in der Form zu analysieren, die er erwähnt und andere Formen sowie .. cursor.getString(). toString() – sankettt