2011-09-20 11 views
16

ResultSet.getTimestamp()を使用してデータベースからタイムスタンプオブジェクトを取得していますが、MM/DD/YYYYという形式で時刻を取得し、HH:MM xxという形式で日付を取得するのが簡単です。私は周りの微妙な動きをしていました.Java内でDateオブジェクトやDateTimeオブジェクトを使用することで、そうすることができます。これが最善の方法ですか、これを達成するためにタイムスタンプを変換する必要がありますか?どんな勧告も役に立つでしょう。タイムスタンプを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... 
    .... 
} 
.... 
+0

ありません 'jodatimeがあることを行っている場合DateTime'クラスは、Java 9 –

答えて

14

java.sql.Timestampjava.util.Dateのサブクラスです。だから、ちょうどそれをアップキャスト。

Date dtStart = resultSet.getTimestamp("dtStart"); 
Date dtEnd = resultSet.getTimestamp("dtEnd"); 

SimpleDateFormatを使用してジョダDateTimeを作成する上で、この点から、簡単にする必要があります。

+11

を通じてJavaの1にバンドルされています使用された 'DateTime dtStartDT =新しいDateTime(resultSet.getTimestamp(" dtStart "));'はすべて必要です。 – fvu

20
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)); 
    } 
} 
+0

「MM/dd/yyyy」「HH:mm:ss:S」が良いでしょうか? – user1768976

+0

もちろん、分は "mm"です。コード例を修正しました。 – Christopher

0

また、あなたの現在の夏時間を含め、タイムスタンプから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); 
}  
+0

この「DateTime」クラスは何ですか?そのようなクラスはJavaにバンドルされていません。プロジェクトにJoda-Timeを追加しましたか?もしそうなら、Joda-Timeと 'Calendar'のような厄介な古いレガシー日時クラスを混ぜる必要はなく、ちょうどJoda-Timeに固執してください。さらに、Joda-Timeプロジェクトは現在メンテナンスモードにあり、最新のjava.timeクラスへの移行についてアドバイスしています。 java.timeクラスは古いレガシー日付/時刻クラス( 'Date'、' Calendar'など)とJoda-Timeクラスの両方に取って代わります。 –

+0

OPは 'asdas'にタイムスタンプを変換する方法を尋ねたので – Vettel1993

+0

DateTimeはJoda-Timeのクラスです。 OPはタイムスタンプをDateまたはDateTimeに変換する方法を尋ねました。あなたは正しいです、ここにカレンダークラスの必要はありません。 – Vettel1993

関連する問題