LocalDate
numaralı veri tabanına sahip olmak için java.sql.Date
numaralı dönüştürücüyü DB'deki bir Tarih alanına kaydetmek için dönüştürüyorum. Benim sorunum, java.sql.Date
'a dönüştürdüğümde, EST'de olmamaya çalıştığım makine nedeniyle bir gün geride kalıyor. UTC'de olmak ve java.sql.Date
'u millis kurucuyu kullanarak oluşturmak için Joda.DateTime
'u kuruyorum. Ben bu yüzden farklı değerler görebilirsiniz ayıklama çıktısını saatler dahil ediyorum:LocalDate'den java.sql.Date adresine gitmek için doğru yol nedir?
item.getDate().toDateTimeAtStartOfDay() = {[email protected]}"2013-09-25T00:00:00.000Z"
item.getDate().toDateTimeAtStartOfDay().getMillis() = 1380067200000
new java.sql.Date(item.getDate().toDateTimeAtStartOfDay().getMillis()) = {[email protected]}"2013-09-24"
item.getDate().getLocalMillis() = 1380067200000
new java.sql.Date(item.getDate().getLocalMillis()) = {[email protected]}"2013-09-24"
new java.util.Date(item.getDate().getLocalMillis()) = {[email protected]}"Tue Sep 24 20:00:00 EDT 2013"
Üzerinde test ediyorum benim makine EST olarak bunun nedeni tahmin ediyorum
java.util.Date
oluşturmadan
ve LocalDate UTC'dir, ancak bunu düzeltmenin doğru yolu olduğundan emin değilim. Yerel saat dilimini alabileceğimi ve bunu değirmenlere ekleyebileceğimin farkındayım, ama bu harikulade bir düzeltmeye benziyor. Bunu sadece eksik olduğum için uygun bir yolu var mı? Oluşturabilir ve bir java.sql.Timestamp değil, bir java.sql.Date kullanmalıdır java.util.Date
new java.util.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000
item.getDate().toDateTimeAtStartOfDay().getMillis() = 1380153600000
item.getDate() = {[email protected]}"2013-09-26"
new java.sql.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000
new java.util.Date(item.getDate().getLocalMillis()) = {[email protected]}"Wed Sep 25 20:00:00 EDT 2013"
new java.util.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000
milisaniye sql değeri ve Date' nesneler 'util nedir? –