2015-08-25 2 views
0

Следующий код здесь возвращает дату в форме «День, Дата, Месяц, Год».
Дата, которая в настоящее время введена, будет возвращена в субботу 28 декабря 2013 года. Тем не менее, я хочу отметить это и распечатать 4 части на 4 отдельных строках, начиная с месяца, затем даты, затем года, затем дня. Каков наилучший способ сделать это?Как написать дату с помощью токенизатора?

import java.text.SimpleDateFormat; 
import java.util.Date; 

class Day{ 

    public static void main(String[] args){ 

    SimpleDateFormat newDateFormat = new SimpleDateFormat("dd/MM/yyyy"); 

    try { 
     Date myDate = newDateFormat.parse("28/12/2013"); 
     newDateFormat.applyPattern("EEEE dd MMM yyyy"); 
     String isDate = newDateFormat.format(myDate); 
     System.out.println(isDate); 
    } catch (Exception e) { 
     System.out.println("Error. Date is in the wrong format."); 
    } 
    } 
} 
+0

Используйте 'java.util.Calandar()' ответ – Jens

ответ

3

использование split() метод:

String []myformat=isDate.split(" "); 
System.out.println(myformat[2]); 
System.out.println(myformat[1]); 
System.out.println(myformat[3]); 
System.out.println(myformat[0]); 

использование заказа независимо от того, вы хотите.

1

Я хочу разметить это и напечатать 4 части на 4 отдельных линий, начиная с месяца, то дата, то год, то день. Что такое лучший способ сделать это?

Вы DateObject вы должны лучше использовать Calendar, чтобы получить как отдельные детали, как это возможно без форматирования даты.

Примечание, что проблема с форматированием и расщеплению, что в другом формате местоположении месяц, дата и год будет отличаться в String.

Который не будет иметь место в следующем коде,

Date date = new Date(); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

String month = cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US); 
int date_ = cal.get(Calendar.DAY_OF_MONTH); 
int year = cal.get(Calendar.YEAR); 
String day = cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US); 

System.out.println(day); 
System.out.println(date_); 
System.out.println(month); 
System.out.println(year); 

ВЫВОД

Tue 
25 
Aug 
2015 
1

Я думаю, что это может решить вашу проблему:

StringTokenizer tokenizer = new StringTokenizer(isDate, " "); 
    Map<String, String> dateParts = new HashMap<String, String>(); 

    while(tokenizer.hasMoreElements()) { 
     dateParts.put("dayOfWeek", (String)tokenizer.nextElement()); 
     dateParts.put("dayNumber", (String)tokenizer.nextElement()); 
     dateParts.put("month", (String)tokenizer.nextElement()); 
     dateParts.put("year", (String)tokenizer.nextElement()); 
    } 

    System.out.println("Month: "+dateParts.get("month")); 
    System.out.println("Day of week: "+dateParts.get("dayOfWeek")); 
    System.out.println("Date: "+dateParts.get("dayNumber")); 
    System.out.println("Year: "+dateParts.get("year")); 
+0

Рустама является более практичным и проще. Однако это демонстрирует, как использовать StringTokenizer для решения вашей проблемы. Может быть, вы сможете найти это полезным в будущем. – drgPP

1

использовать следующий код

 Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     System.out.println(cal.get(Calendar.YEAR)); 
     System.out.println(cal.get(Calendar.MONTH)); 
     System.out.println(cal.get(Calendar.DAY_OF_MONTH)); 
Смежные вопросы