28 Mart 2018 Çarşamba

TimeZone Sınıfı - Kullanmayın

Giriş
Şu satırı dahil ederiz.
import java.util.TimeZone;
Bu sınıf Java 1.1'den beri mevcut yani Legacy kabul ediliyor.

Bu sınıf yerine yeni kodlarda java.time.ZoneId veya java.time.ZoneOffset  kullanılabilir.

Kullanım
TimeZone.getDefault(); veya Calendar.getTimeZone() çağrısı ile nesne elde edilir
Daha sonra getID(),getAvailableIDs(),getOffset() gibi metodlar kullanılabilir.

constructor
Şöyle yaparız.
Calendar calendar = ...;  
TimeZone tz = calendar.getTimeZone();  
getAvailableIDs metodu
Açıklaması şöyle
returns an array containing all the available timezone IDs in this class
getDefault metodu
Açıklaması şöyle
returns the default timezone of your region
Örnek
Şöyle yaparız.
TimeZone tz = TimeZone.getDefault();
Örnek
Calendar kurmak için şöyle yaparız.
TimeZone tz = TimeZone.getDefault();  
Calendar cal = GregorianCalendar.getInstance (tz);
getDisplayName metodu
Şöyle yaparız.
String time_zone = TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT);
Çıktı olarak şunu alırız.
GMT-05:00
getID metodu
Açıklaması şöyle
returns the ID of the corresponding timezone object
Örnek
Şöyle yaparız.
String time_zone = TimeZone.getDefault().getID();
Çıktı olarak şunu alırız.
america/new_york
getOffset metodu - long date
Açıklaması şöyle
returns the offset of the corresponding timezone object from UTC at the given date (specified in the parameter as a long number)
Belirtilen tarihteki UTC'ye göre offset'i milisaniye olarak verir.
Örnek
Şöyle yaparız.
Date d = ...;
int offsetInMillis = tz.getOffset (d.getTime());
Örnek
Şöyle yaparız.
Calendar cal= Calendar.getInstance();
Date date = cal.getTime();
TimeZone tz = cal.getTimeZone();

//Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT 
long msFromEpochGmt = date.getTime();

//gives you the current offset in ms from GMT at the current date
int offsetFromUTC = tz.getOffset(msFromEpochGmt);
getRawOffset metodu
Örnek
Şöyle yaparız.
int offsetInMillis = tz.getRawOffset (); 
Milisaniyeyi saate çevirmek istersek şöyle yaparız.
int hours = TimeUnit.HOURS.convert (offsetInMillis, TimeUnit.MILLISECONDS);
Örnek
Şöyle yaparız.
long startOf1900Utc = -2208988800000L;
for (String id : TimeZone.getAvailableIDs()) {
  TimeZone zone = TimeZone.getTimeZone(id);
  if (zone.getRawOffset() != zone.getOffset(startOf1900Utc - 1)) {
    System.out.println(id);
  }
}
getTimeZone metodu
İsmi belirtilen saati dilimi nesnesini döndürür.
Şöyle yaparız.
TimeZone tz =  TimeZone.getTimeZone ("UTC")
Şöyle yaparız.
TimeZone tz = TimeZone.getTimeZone("GMT");
Şöyle yaparız. Central Standard Time anlamına gelir.
TimeZone cst = TimeZone.getTimeZone("CST");
inDaylightTime metodu
Belirtilen tarihin yaz saatine denk gelip gelmediğini döner. Şöyle yaparız.
boolean isDST = TimeZone.getDefault().inDaylightTime(new java.util.Date());
setDefault metodu
JVM'nin saat dilimini değiştirir.
TimeZone.setDefault (TimeZone.getTimeZone("UTC"));
setID metodu
Açıklaması şöyle
sets a time zone ID to the string specified in the parameters (changes the ID of the time zone to a custom name)
Örnek
Şöyle yaparız
TimeZone myRegion = TimeZone.getDefault();
System.out.println("Original Time Zone: " + myRegion.getID());

myRegion.setID("Africa/Tandrewland");
System.out.println("New Arrival: " + myRegion.getID());
/* 
Output:
Original Time Zone: America/Toronto
New Arrival: Africa/Tandrewland
*/

Hiç yorum yok:

Yorum Gönder