Veritabanından bir Tarih ve Zaman geri çekiyorum. Ayrı alanlarda depolanırlar, ancak bunları tarih/saati uygun şekilde yansıtan bir java.util.Date nesnesinde birleştirmek isterim.Bir java.util.Date nesnesini bir java.sql.Time nesnesiyle nasıl birleştiririm?
İşte benim özgün yaklaşımım, ancak kusurlu. Her zaman olması gereken 6 saat olan bir Tarih/Saat ile sona ererim. Sanırım bunun nedeni, Zaman'ın Tarih'in yanı sıra bir zaman dilimi ofsetine sahip olması ve sadece bir saat dilimi ofsetine sahip olmak için bunlara ihtiyacım var.
Bunu nasıl yapacağınıza dair herhangi bir öneride bulunarak bana doğru tarih/saati verecek?
import java.sql.Time;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.time.DateUtils;
public static Date combineDateTime(Date date, Time time)
{
if (date == null)
return null;
Date newDate = DateUtils.truncate(date, Calendar.DATE);
if (time != null)
{
Date t = new Date(time.getTime());
newDate = new Date(newDate.getTime() + t.getTime());
}
return newDate;
}
Calendar.getInstance() Takvim yeni bir örneğini her çağrı oluşturur. Takvim çok ağırdır ve iş parçacığı güvenli değildir. Bu teknik olarak bunu yapmak için doğru bir yol olsa da, bu konuda gitmenin daha iyi yolları vardır. –
Daha iyi bir yol varsa, lütfen postayla gönderebilir misiniz? – ScArcher2
Çok fazla Takvim oluşturmayla ilgili endişeleriniz varsa, tarih bölümü için bir tane ve bu süre için bir tane oluşturabilir ve bunları yalnızca dCal.setTime (tarih) ve tCal.setTime (zaman) ile sıfırlayabilirsiniz; –