ResultSet.getTimestamp()
を使用してデータベースからタイムスタンプオブジェクトを取得していますが、日付をMM/DD/YYYY
の形式で取得し、時刻をHH:MM xx
の形式で取得する簡単な方法が欲しいです。私はいじくり回していましたが、Java内でDateおよび/またはDateTimeオブジェクトを利用することでそれができるように見えます。それが最善の方法ですか、これを達成するためにタイムスタンプを変換する必要がありますか?推奨事項は役立ちます。
....
while(resultSet.next()) {
Timestamp dtStart = resultSet.getTimestamp("dtStart");
Timestamp dtEnd = resultSet.getTimestamp("dtEnd");
// I would like to then have the date and time
// converted into the formats mentioned...
....
}
....
Java.sql.Timestamp
は Java.util.Date
。だから、ただそれをアップキャストしてください。
Date dtStart = resultSet.getTimestamp("dtStart");
Date dtEnd = resultSet.getTimestamp("dtEnd");
SimpleDateFormat
を使用してJoda DateTime
を作成することは、この時点から簡単です。
import Java.sql.Timestamp;
import Java.text.SimpleDateFormat;
import Java.util.Date;
public class DateTest {
public static void main(String[] args) {
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
Date date = new Date(timestamp.getTime());
// S is the millisecond
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss:S");
System.out.println(simpleDateFormat.format(timestamp));
System.out.println(simpleDateFormat.format(date));
}
}
現在の夏時間を含むタイムスタンプからDateTimeオブジェクトを取得することもできます。
public DateTime getDateTimeFromTimestamp(Long value) {
TimeZone timeZone = TimeZone.getDefault();
long offset = timeZone.getOffset(value);
if (offset < 0) {
value -= offset;
} else {
value += offset;
}
return new DateTime(value);
}