2016-08-13 7 views
2

그래서 저는 toString 메서드를 사용하는 두 개의 클래스가 있고 날짜와 시간으로 인쇄하는 필드 중 하나가 필요합니다.하지만 힘든 시간을 보내고 있습니다. . 여기은 toString 메서드에서 그레고리 안 달력을 나타냅니다.

import java.util.Calendar; 
import java.util.GregorianCalendar; 
import java.util.Comparator; 
import java.util.Date; 

public class Email { 

private String to; 
private String cc; 
private String bcc; 
private String subject; 
private String body; 
private GregorianCalendar timestamp; //time that email was created 



public Email(String to, String cc, String bcc, String subject, String body) { 
    super(); 
    this.to = to; 
    this.cc = cc; 
    this.bcc = bcc; 
    this.subject = subject; 
    this.body = body; 
    timestamp = (GregorianCalendar) new GregorianCalendar().getInstance(); 


} 
public String getTo() { 
    return to; 
} 
public void setTo(String to) { 
    this.to = to; 
} 
public String getCc() { 
    return cc; 
} 
public void setCc(String cc) { 
    this.cc = cc; 
} 
public String getBcc() { 
    return bcc; 
} 
public void setBcc(String bcc) { 
    this.bcc = bcc; 
} 
public String getSubject() { 
    return subject; 
} 
public void setSubject(String subject) { 
    this.subject = subject; 
} 
public String getBody() { 
    return body; 
} 
public void setBody(String body) { 
    this.body = body; 
} 

public Date getTimestamp() { 
    return timestamp.getTime(); 
} 
public void setTimestamp(GregorianCalendar timestamp) { 
    this.timestamp = timestamp; 
} 

및 이메일 개체를 포함 내 폴더 클래스는 내가보기 위하여 그것을 간단하게이 방법을 제외하고 만 촬영 한한다 : 여기에 (기본 필드, 생성자, getter 및 setter가 내 이메일 클래스입니다 :

import java.sql.Timestamp; 
import java.util.*; 

public class Folder implements Comparable{ 

private ArrayList<Email> emails; 
private String name; 
private String currentSortingMethod; 

//constructors, getters, setters and other methods omitted 

public String toString(){ 
    String a = ""; 
    int j = 1; 
    for(int i = 0; i < emails.size(); i++){ 
     String k = Integer.toString(j); 
     a += String.format("%-8s %-5s %-8s %-1s %10s", " "+ k +" ", "|" , emails.get(i).getTimestamp(), "|", emails.get(i).getSubject()+ " \n"); 
     j = Integer.parseInt(k); 
     j++; 
    } 

      return(String.format("%-8s %-5s %-8s %-1s %10s", "Index", "|", "Time", "|", " Subject") + "\n" + "-------------------------------------\n" + a); 
} 

toString 메소드는이

Index |  Time  | Subject 
------------------------------------- 
    1  |  Time  |  e 
    2  |  Time  |  d 
    3  |  Time  |  c 
    4  |  Time  |  b 
    5  |  Time  |  a 

는 다른 분야에 대한 잘 작동하지만 나는 "시간"열을 필요로하는 시간들로 채워질하는 식으로 뭔가를 인쇄해야합니다 그 이메일 객체가 생성되었을 때의 tamps. 예 : 12:38 AM 4/8/2012

아무 도움이 필요하시면 고맙습니다.

+0

기본적으로'SimpleDateFormat', 또는'String.format'의 날짜/시간 기능을 사용해야하는 것처럼 들리지만 ... 지금까지 아무 것도 시도하지 않았습니까? 또한 당신의 질문이 "어떻게'GregorianCalendar'를 특정 형식의'String'으로 변환 할 수 있습니까? 질문에서 제공 한 세부 정보의 95 %는 관련성이 없습니다. –

+0

이 컨텍스트에서 simpleDateFormat을 사용하는 방법을 설명 할 수 있습니까? 그리고 그것은 문자열 형식으로 문자열로 작동하거나 그 변환이 필요합니다 –

답변

1

로컬로 실행했는데 작동합니다. 아래를 참조하십시오. UR 타임 스탬프 란 무엇입니까?

Index |  Time  | Subject 
------------------------------------- 
    1  |  Fri Aug 12 18:16:59 PDT 2016 | subject 
    2  |  Fri Aug 12 18:17:00 PDT 2016 | subject 
+0

그 완벽한 것입니다,하지만 난 "getTimestamp() 메서드에 대한 정의되지 않은 오류가 발생했습니다 전자 메일에 대한 정의되지 않았습니다" –

+0

확실하지 수 있습니다 import java.sql.Timestamp를 제거하고 확인 하시겠습니까? 또한 나는 이메일 생성자에서 U가 단지 this.timestamp가 아닌 timestamp를 가졌음을 주목한다. 문제는 아니지만 – user641887

+0

그것도 효과가있다! 어느 쪽이 그랬는지는 모르지만 당신이 말한 두 가지를 바꿨습니다. 이제 나는 데이트를 얻습니다. 정말 고맙습니다! –