Java - 格式化日期打印

时间:2014-09-16 12:31:23

标签: java date

我需要帮助来格式化下面代码中的日期。应该是表单上显示的日期:05. May 2014。请给我建议如何做。

package person;
public class Person {

public static void main(String[] split) {

    String text = "John.Davidson/05051988/Belgrade Michael.Barton/01011968/Krakov Ivan.Perkinson/23051986/Moscow";
    String[] newText = text.split("[./ ]");
    for(int i=0; i<newText.length; i+=4)
    {
         String name = newText[i].split(" ")[0];
         String lastName = newText[i+1].split(" ")[0];
         String dateOfBirth = newText[i+2].split(" ")[0];
         String placeOfBirth = newText[i+3].split(" ")[0];

         System.out.println("Name: " + name + ", last name: " + lastName + ", date of birth: " + dateOfBirth + ", place of birth: " + placeOfBirth);
    }
}

}

4 个答案:

答案 0 :(得分:1)

试试这种方式

String dateOfBirth = newText[i+2].split(" ")[0];
SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMyyyy", Locale.ENGLISH);
Date date = dateFormat.parse(dateOfBirth);
SimpleDateFormat dF = new SimpleDateFormat("dd. MMMM yyyy", Locale.ENGLISH);
System.out.println(dF.format(date));

别忘了处理异常

答案 1 :(得分:1)

建议:使用SDK中的实用程序类:

答案 2 :(得分:0)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class Format {


    public static void main(String[] args) throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat("dd ',' MMM yyyy", Locale.ENGLISH);
        SimpleDateFormat parser = new SimpleDateFormat("ddMMyyyy");
        String text = "John.Davidson/05051988/Belgrade Michael.Barton/01011968/Krakov Ivan.Perkinson/23051986/Moscow";
        String[] newText = text.split("[./ ]");
        for(int i=0; i<newText.length; i+=4)
        {
            String name = newText[i].split(" ")[0];
            String lastName = newText[i+1].split(" ")[0];
            String dateOfBirth = newText[i+2].split(" ")[0];
            String placeOfBirth = newText[i+3].split(" ")[0];


            System.out.println("Name: " + name + ", last name: " + lastName + ", date of birth: " + formatter.format(parser.parse(dateOfBirth)) + ", place of birth: " + placeOfBirth);
        }}


}

答案 3 :(得分:0)

你可以这样做。

请注意SimpleDateFormat NOT THREAD SAFE

“日期格式不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问格式,则必须在外部同步。”

    SimpleDateFormat FromDate = new SimpleDateFormat("mmDDyyyy");
    Date date = FromDate.parse("05051988");
    SimpleDateFormat toFormat = new SimpleDateFormat("dd. MMMM yyyy");
    String result = toFormat.format(date);