Представление григорианского календаря в методе 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;
}

А вот мой класс Folder, который содержит объекты электронной почты. Я взял только исключение из этого метода, чтобы упростить просмотр:

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  

он отлично работает для других полей, но мне нужно, чтобы столбец "Время" был заполнен отметками времени, когда этот объект электронной почты был создан. Пример: 12:38 8.04.2012

Большое спасибо за любую помощь!

1 ответ

Решение

Я запускал это локально, и это работает.. см. Ниже. что ты получаешь в поле timestamp?

Index    |     Time     |    Subject
-------------------------------------
  1      |     Fri Aug 12 18:16:59 PDT 2016 | subject  
  2      |     Fri Aug 12 18:17:00 PDT 2016 | subject  
Другие вопросы по тегам