2012-11-14 23 views
5

bunu biçimlendirme:bir tarihi bir String alarak ve bir tarihtir ama gibi biçimlendirilir Java bir String Java

Ben gibi görünmek için yeniden biçimlendirmeniz gerekir 02/12/2012 Bu nasıl yapılabilir? Geri [email protected] Aşağıda

benim kodudur almaya devam aşağıdaki kod ile

..

public static void main(String[] args) { 

    // Make a String that has a date in it, with MEDIUM date format 
    // and SHORT time format. 
    String dateString = "02152012"; 

    SimpleDateFormat input = new SimpleDateFormat("ddMMyyyy"); 
    SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy"); 
    try { 
     output.format(input.parse(dateString)); 
    } catch (Exception e) { 

    } 
    System.out.println(output.toString()); 
} 
+2

hiçbir ay sayısı 15 – Alex

+1

Orada Gerçekten de, format arayarak sonucu görmezden konum Alex'le katılıyorum, ve bunun 02122012 olması istense bile, ne denediniz? –

+3

@BlueBullet: Asıl soruyu düzenlediniz * varsayarak * sadece bir yazım hatasıdır. Bunu OP'den duymayı tercih ederim. –

cevap

9

Kullanım SimpleDateFormat.

System.out.println(output.toString()); 

: Jon Skeet önerdiği gibi

SimpleDateFormat input = new SimpleDateFormat("ddMMyyyy"); 
SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy"); 
System.out.println(output.format(input.parse("02122012"))); // 02/12/2012 

, ayrıca bu, düzenlenen söz konusu koduyla sorunudur SimpleDateFormat

SimpleDateFormat englishUtcDateFormat(String format) { 
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.ENGLISH); 
    sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
    return sdf; 
} 

SimpleDateFormat input = englishUtcDateFormat("ddMMyyyy"); 
SimpleDateFormat output = englishUtcDateFormat("dd/MM/yyyy"); 
System.out.println(output.format(input.parse("02122012"))); // 02/12/2012 
+0

cool solution +1 – Juvanis

+1

Saat dilimini UTC ve yerel ayar olarak İngilizce olarak belirtmenizi ve hatta takvimi de açıkça ayarlamanızı öneririm. –

+0

işe yaramadı ... Bir output.toString() – techsjs2012

0

üzerinde TimeZone ve Locale ayarlayabilirsiniz format numaralı telefonun sonucunu değil, SimpleDateFormat'u yazdırıyorsunuz. daha net

System.out.println(output.format(input.parse(dateString))); 

Veya:

output.format(input.parse(dateString)); 

Sadece olarak değiştirin:

Date parsedDate = input.parse(dateString); 
String reformattedDate = output.format(parsedDate); 
System.out.println(reformattedDate); 
İlgili konular