Turkcell | Geleceği Yazanlar

Android 101Başlangıç seviyesi derslerde Android uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Java'da Tarih İşlemleri

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 12.09.2019 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : java-tarih-islemleri android

Java’da tarih ile ilgili işlem yapmak için Date sınıfında faydalanırız. Date sınıfı belirli bir zaman değerini bir değişkene atamamızı ve üzerinde ekleme, çıkarma ya da dönüştürme gibi işlemler yapmamızı sağlar. Date sınıfını new Date() yapıcısıyla oluşturduğumuzda o anın tarihine ve saatine (kodun çalıştığı bilgisayarın saati) sahip bir zaman değişkenine sahip oluruz.

import java.util.Date;

public class DateOrnek1 {
    public static void main(String[] args) {

        Date simdikiZaman = new Date();
        System.out.println(simdikiZaman.toString());
    }
}

Bir zamanın, UNIX Timestamp değerini öğrenmek için getTime metodunu kullanabilirsiniz.

import java.util.Date;

public class DateOrnek2 {
    public static void main(String[] args) {

        Date now = new Date();
        System.out.println(now.toString());
        System.out.println("Timestamp : " + now.getTime());
    }
}

NOT: UNIX Timestamp, 1 Ocak 1970 00:00 tarihinden bu yana geçen zamanın milisaniye cinsinden değeridir. Eğer tarihi farklı bir şekilde ekrana yazmanız gerekirse, SimpleDateFormat sınıfından yardım alabilirsiniz. Bir Date değişkenini son kullanıcının anlayabileceği bir formatta yazdırmak için kullanılan SimpleDateFormat, aynı zamanda kullanıcının elle girdiği bir tarihi Date değişkenine çevirebilir. Aşağıdaki örnekte zaman bilgisi, tarih yıl - ay - gün olarak yazdırılıyor.

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateOrnek3 {
    public static void main(String[] args) throws ParseException {

        Date simdikiZaman = new Date();
        System.out.println(simdikiZaman.toString());
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
        System.out.println(df.format(simdikiZaman));
    }
}

Eğer yine aynı formatta bir tarihi (örneğin 1984/01/01) Date tipinde bir değişkene atamak isterseniz parse metodundan faydalanabilirsiniz. Bu metod verilen bir String tarih değerini Date tipine çevirecektir. Eğer çevirme işlemi başarısız olursa ParseException fırlatılır.

NOT: Hata fırlatma konusu için try / catch / finally bloklarının anlatıldığı Java’da olağan dışı durumlar konusuna göz atabilirsiniz.

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateOrnek4 {
    public static void main(String[] args) throws ParseException {

        Date simdikiZaman = new Date();
        System.out.println(simdikiZaman.toString());

        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
        Date tarih = df.parse("1984/01/01");
        System.out.println(tarih);
    }
}

DateFormatter ile kullanabileceğiniz diğer tanımlar aşağıdaki şekildedir:

Harf Temsil ettiği parça Örnek
y Yıl 1996; 96
M Yıl içinde ay July; Jul; 07
w Yıl içinde hafta 27
W Ay içinde hafta 2
D Yıl içinde gün 189
d Ay içinde gün 10
F Ay içinde haftanın günü 2
E Haftanın günü Tuesday; Tue
a Sabah/akşam PM
H Gün içinde saat (0-23) 0
k Gün içinde saat (1-24) 24
K Sabah/akşam için saat (0-11) 0
h Sabah/akşam için saat (1-12) 12
m Saat içinde dakika 30
s Dakika içinde saniye 55
S Milisaniye 978

Son olarak tarih içerisinde belli bir günü bir değişkene atamak için Java bizlere Calendar adında bir sınıf sunar. Bu sınıf sayesinde tarih akışı içinde herhangi bir güne ulaşabiliriz.

Aşağıda 1 Ocak 1984 tarihini temsil eden bir değişken tanımlaması yapılmıştır.

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateOrnek5 {
    public static void main(String[] args) {

        Calendar takvim = new GregorianCalendar(1984, 01, 01);
        Date tarih = takvim.getTime();
        System.out.println(tarih.toString());
    }
}