2011-09-20 19 views
16

ResultSet.getTimestamp() kullanarak bir veritabanından bir zaman damgası nesnesi alıyorum, ancak MM/DD/YYYY biçiminde ve HH:MM xx biçimindeki saati almanın kolay bir yolunu kullanmak istiyorum. Ben etrafta tinkering yaptım, bu Java içinde Tarih ve/veya DateTime nesneleri kullanarak yapabilirim gibi görünüyor. Bunu yapmanın en iyi yolu mu, yoksa bunu başarmak için zaman damgasını dönüştürmem gerekiyor mu? Herhangi bir öneri yardımcı olabilir.Zaman damgasını Date veya DateTime nesnesine nasıl dönüştürebilirim?

.... 
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

Hayır 'jodatime olacak eğer DateTime' sınıf Java 9. –

cevap

14

java.sql.Timestampjava.util.Date bir alt sınıfıdır. Yani, sadece yayınlayın.

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

SimpleDateFormat Kullanılması ve joda DateTime oluşturarak bu noktadan itibaren basit olmalıdır.

+11

aracılığıyla Java 1 ile paketlenmiştir DateTime dtStartDT = yeni DateTime kullanıldı (resultSet.getTimestamp ("dtStart")); 'gereken her şey. – 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

Belki "MM/gg/yyyy '' HH: dd: ss: S" daha iyi? – user1768976

+0

Elbette, dakikalar "mm" dir, kod örneğini düzelttim. – Christopher

0

Ayrıca geçerli gün ışığından yararlanma süresi dahil olmak üzere, zaman damgası DateTime nesnesini alabilirsiniz:

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

Bu 'DateTime 'sınıfı nedir? Java ile böyle bir sınıf yok. Joda-Time'ı projenize eklediniz mi? Eğer öyleyse, Joda-Time ile "Takvim" gibi eski eski tarih-zaman sınıfları karıştırma gerek kalmaz, sadece Joda-Time'a yapışır. Ayrıca, Joda-Time projesi artık bakım modunda ve modern java.time sınıflarına geçişi tavsiye ediyor. Java.time sınıfları hem eski eski tarih-zaman sınıfları ('Tarih ',' Takvim ', vb) ve Joda-Time tamamlar. –

+0

OP, zaman damgasını 'asdas' – Vettel1993

+0

'a nasıl çevirdiğini sorduğundan DateTime, Joda-Time sınıfından birisidir. OP, zaman damgasını Tarih veya DateTime'a nasıl dönüştürüleceğini sordu. Haklısınız, burada Takvim dersine gerek yok. – Vettel1993

İlgili konular