Girşi
TimeUnit sınıfı concurrency paket içinde gelse de zaman hesaplaması için kullanılabilir. Ayrıca ChronoUnit sınıfı ile de bazı konularda benzerlik gösteriyor. Java 8 varsa bu sınıfı tercih etmemek gerekir.
Bu sınıfın sanırım en çok kullanılan metodu convert(). Farklı birimler arasında çevrim yapabilmeyi sağlar.
convert metodu
Örnek
Milisaniyeyi güne çevirmek için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Girdinin kullanılan TimeUnit.X sabit ile aynı olması gerekir.
Örnek
Şöyle yaparız. Girdi nanosaniye biriminden olduğu için NANOSECONDS sabiti kullanılıyor.
İki date arasındaki farkı saniye olarak şöyle buluruz. Girdi milisaniye biriminden olduğu için MILLISECONDS sabiti kullanılıyor.
TimeUnit sınıfı concurrency paket içinde gelse de zaman hesaplaması için kullanılabilir. Ayrıca ChronoUnit sınıfı ile de bazı konularda benzerlik gösteriyor. Java 8 varsa bu sınıfı tercih etmemek gerekir.
Bu sınıfın sanırım en çok kullanılan metodu convert(). Farklı birimler arasında çevrim yapabilmeyi sağlar.
convert metodu
Örnek
Milisaniyeyi güne çevirmek için şöyle yaparız.
long ms = ...;
long noOfDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
sleep metoduŞöyle yaparız.
TimeUnit.SECONDS.sleep(y)
Bu metod Thread.sleep ile aynıdır. Hatta metodun içi şöyledir.public void sleep(long timeout) throws InterruptedException {
if (timeout > 0) {
long ms = toMillis(timeout);
int ns = excessNanos(timeout, ms);
Thread.sleep(ms, ns);
}
}
Metod exception atar. Şöyle kullanmak gerekir.try
{
TimeUnit.SECONDS.sleep(1);
}
catch(InterruptedException e)
{...}
Sürekli catch yazmak hoş olmadığı için şöyle basitleştirebiliriz.public void timeDelay(long t) {
try {
TimeUnit.SECONDS.sleep(t);
} catch (InterruptedException e) {...}
}
toDays metoduŞöyle yaparız.
long noOfDays = ...;
long a = TimeUnit.DAYS.toDays(noOfDays);
toSecondsGirdinin kullanılan TimeUnit.X sabit ile aynı olması gerekir.
Örnek
Şöyle yaparız. Girdi nanosaniye biriminden olduğu için NANOSECONDS sabiti kullanılıyor.
NANOSECONDS.toSeconds(elapsedNanoSeconds);
Örnekİki date arasındaki farkı saniye olarak şöyle buluruz. Girdi milisaniye biriminden olduğu için MILLISECONDS sabiti kullanılıyor.
String str = TimeUnit.MILLISECONDS.toSeconds(date1.getTime() - date2.getTime());
Hiç yorum yok:
Yorum Gönder