Java'da String Tipini Date Tipine Çevirme
Java programlama Dili ile String Tipinde olan tarih değerini Date Tipine çevirmek için kullanılabilecek yöntemler incelenecek.
1. Yöntem: DateTimeFormatter kullanımı
java 8 ve üzeri versiyonlarda çalışır.
Örnek 1:
ilk olarak DateTimeFormatter import ediniz.
import java.time.format.DateTimeFormatter;
Daha sonra çevireceğiniz string için tarih formatını giriniz. bu kodun çalışabilmesi için verilen string değer ile oluşturulacak format tutarlı olmalıdır.
String date = "12-10-2016"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-M-yyyy"); System.out.println(formattedDate); System.out.println(formatter.format(formattedDate));
Çıktı:
2016-10-16 16-10-2016
Örnek 2:
String stringdate2 = "12-Aug-2016"; DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("d-MMM-yyyy", Locale.US); LocalDate formattedDate2 = LocalDate.parse(stringdate2, formatter2); System.out.println(formattedDate2); System.out.println(formatter.format(formattedDate2));
Örnek 3:
String stringdate3 = "Monday, Aug 12, 2019 13:25:31 PM"; DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEEE, MMM d, yyyy HH:mm:ss a", Locale.US); LocalDate formattedDate3 = LocalDate.parse(stringdate3, formatter3); System.out.println(formattedDate3); System.out.println(formatter.format(formattedDate3));
önceden tanımlanmış formatlar
Formatter | Description | Example |
ofLocalizedDate(dateStyle) | Formatter with date style from the locale | '2011-12-03' |
ofLocalizedTime(timeStyle) | Formatter with time style from the locale | '10:15:30' |
ofLocalizedDateTime(dateTimeStyle) | Formatter with a style for date and time from the locale | '3 Jun 2008 11:05:30' |
ofLocalizedDateTime(dateStyle,timeStyle) | Formatter with date and time styles from the locale | '3 Jun 2008 11:05' |
BASIC_ISO_DATE | Basic ISO date | '20111203' |
ISO_LOCAL_DATE | ISO Local Date | '2011-12-03' |
ISO_OFFSET_DATE | ISO Date with offset | '2011-12-03+01:00' |
ISO_DATE | ISO Date with or without offset | '2011-12-03+01:00'; '2011-12-03' |
ISO_LOCAL_TIME | Time without offset | '10:15:30' |
ISO_OFFSET_TIME | Time with offset | '10:15:30+01:00' |
ISO_TIME | Time with or without offset | '10:15:30+01:00'; '10:15:30' |
ISO_LOCAL_DATE_TIME | ISO Local Date and Time | '2011-12-03T10:15:30' |
ISO_OFFSET_DATE_TIME | Date Time with Offset | 2011-12-03T10:15:30+01:00' |
ISO_ZONED_DATE_TIME | Zoned Date Time | '2011-12-03T10:15:30+01:00[Europe/Paris]' |
ISO_DATE_TIME | Date and time with ZoneId | '2011-12-03T10:15:30+01:00[Europe/Paris]' |
ISO_ORDINAL_DATE | Year and day of year | '2012-337' |
ISO_WEEK_DATE | Year and Week | 2012-W48-6' |
ISO_INSTANT | Date and Time of an Instant | '2011-12-03T10:15:30Z' |
RFC_1123_DATE_TIME | RFC 1123 / RFC 822 | 'Tue, 3 Jun 2008 11:05:30 GMT' |
pattern örnekleri
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 |
2. Yöntem :SimpleDateFormat kullanımı
Örnek 4:
ilk olarak import işlemlerini yapınız.
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;
Daha sonra çevireceğiniz string için tarih formatını giriniz. bu kodun çalışabilmesi için verilen string değer ile oluşturulacak format tutarlı olmalıdır.
try { String stringdate4 = "2019/08/12"; SimpleDateFormat simpleformatter = new SimpleDateFormat("yyyy/MM/dd"); Date formattedDate4 = simpleformatter.parse(stringdate4); System.out.println(formattedDate4); System.out.println(simpleformatter.format(formattedDate4)); } catch (ParseException e) { e.printStackTrace(); }
Çıktı:
Mon Aug 12 00:00:00 EEST 2019 2019/08/12