私のアプリケーションでは、現在の日付をデータベースに保存する必要があります。現在の日付を取得するにはどうすればよいですか。データベースに日付を保存する特定の形式はありますか。
5 に答える
データベースに長い日付/時刻を格納し、データベースから長い日付/時刻を取得し、SimpleDateFormatを使用して必要な形式を指定することをお勧めします。
SQLite には、日付や時刻を格納するためのストレージ クラスが用意されていません。代わりに、 SQLiteの組み込みの日付と時刻関数は、日付と時刻を TEXT、REAL、または INTEGER 値として格納できます。
- ISO8601 文字列としての TEXT ("YYYY-MM-DD HH:MM:SS.SSS")。
- ユリウス日としての REAL。先発グレゴリオ暦による紀元前 4714 年 11 月 24 日のグリニッジ正午からの日数。
- UNIX 時間としての INTEGER、1970-01-01 00:00:00 UTC からの秒数。
アプリケーションは、これらの形式のいずれかで日付と時刻を保存することを選択し、組み込みの日付と時刻関数を使用して形式を自由に変換できます。
次に、その後に日付を挿入する方法について説明します。
それぞれPreparedStatement#setString()または#setLong()を使用します。
この説明がうまくいくことを願っています..
- 最初にクラスを使用して格納する日付を
String
オブジェクトに変換しますSimpleDateFormat
コードサンプル:
Date dateToBeStored = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); // this format will help you to convert date to 2012/07/04 format string
String dateString = formatter.format(dateToBeStored); // convert string
DBから日付文字列を読み取ります。DB から日付を取得する手段が必要です。
String readDateStringFromDB = readDate();
クラス
parse
のメソッドによって、読み取った日付文字列を日付オブジェクトに解析しますSimpleDateFormat
Date dateObj = formatter.parse(readDateStringFromDB); // now you have the Date object back
Date クラスを使用してエポック時間を取得し、データベースに整数として格納できます。または、エポック時間を通常の時間に変換し、日付データ型として保存することもできます。
https://developer.android.com/reference/java/text/SimpleDateFormat
SimpleDateFormat sdfDateTime = new SimpleDateFormat("dd/MM/yyyy"+ "",Locale.US);
String newtime = sdfDateTime.format(new Date(System.currentTimeMillis()));