Bir tarihi yyyy-MM-dd'T'HH:mm:ss.SSSz biçiminde yyyy-mm-dd HH:mm:ss olarak biçimlendirmeye çalışıyorum, bu kolay olmalı ama çalışmasını sağlayamıyorum.
Ayrıştırılması gereken bir tarih şu şekildedir: 2012-10-01T09:45:00.000+02:00
Şimdi bunu biçimlendirmek için bu basit tarih biçimlendiricisini kullanıyorum:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.FRANCE);
yine de bu 2012-10-01T09:45:00.000UTC+00:00'a benzer bir çıktı verir.
Ayrıca kalıp olarak "yyyy-MM-dd'T'HH:mm:ss.SSSZ" ve "yyyy-MM-ddH:mm:ss" kullanmayı denedim. İkincisi, 2012-10-01T09:45:00 close şeklinde bir tarih döndürür, ancak henüz orada değildir.
T'yi uzaklaştırmanın biraz dağınık olacağını ve sebepsiz yere ek yük oluşturacağını düşündüm, bu nedenle bu tarihleri biçimlendirmenin doğru yolu nedir?
Örnek olarak 2012-10-01T09:45:00.000+02:00'ı 2012-10-01 09:45:00'a dönüştürmek istiyorum
Şerefe!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(time);
String formattedTime = output.format(d);
Bu işe yarıyor. Biri giriş diğeri çıkış için olmak üzere iki SimpleDateFormat kullanmanız gerekir, ancak bu size tam olarak istediğinizi verecektir.
Gooye, projenizde Joda Time kullanmak mümkünse, bu kod benim için çalışıyor:
String dateStr = "2012-10-01T09:45:00.000+02:00";
String customFormat = "yyyy-MM-dd HH:mm:ss";
DateTimeFormatter dtf = ISODateTimeFormat.dateTime();
LocalDateTime parsedDate = dtf.parseLocalDateTime(dateStr);
String dateWithCustomFormat = parsedDate.toString(DateTimeFormat.forPattern(customFormat));
System.out.println(dateWithCustomFormat);