我需要帮助来格式化下面代码中的日期。应该是表单上显示的日期: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);
}
}
}
答案 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);