Java (J2SE) を使用してアプリケーションを開発しています。
時刻をデータベースに保存する必要があります (例: 16:30:12)。
日付 (または日付 + 時刻) を保存する必要がある場合は、それを Unix タイムスタンプに変換し、Long
数値として保存します。
しかし、日付と時刻ではなく時刻だけが必要な場合、それを保存する最良の方法は何ですか? およびを DBMS として
使用しています。SQLite
MS Access
ありがとう
Java (J2SE) を使用してアプリケーションを開発しています。
時刻をデータベースに保存する必要があります (例: 16:30:12)。
日付 (または日付 + 時刻) を保存する必要がある場合は、それを Unix タイムスタンプに変換し、Long
数値として保存します。
しかし、日付と時刻ではなく時刻だけが必要な場合、それを保存する最良の方法は何ですか? およびを DBMS として
使用しています。SQLite
MS Access
ありがとう
以来Java 8
、またはJoda-Time
以前のバージョンでライブラリを使用することによるより良い方法:
クラスを使用してLocalTime
、午前 0 時からの秒数を抽出します。three bytes number (0 to 86399)
これをデータベースに (8 バイトの datetime ではなく)として保存できます。
https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html
LocalTime time = LocalTime.parse("12:34:45");
int secondOfDay = time.toSecondOfDay();
// Save to database
逆にするには:
// Get from database
LocalTime time = LocalTime.ofSecondOfDay(secondOfDay);
null-date (1970 年 1 月 1 日 00:00:00 GMT) からのミリ秒単位の時間として時間を保存しても問題ありません。DB 内のこの長いデータ フィールドに対する比較操作を簡単に行うことができます。
普通に収納できますString
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String time = sdf.format(Calendar.getInstance());