2016-08-13 12 views
2

私は2つのクラスを持っています.1つはtoStringメソッドで、1つは日付と時刻に印刷するフィールドが必要ですが、やりにくいです。ここに私の電子メールのクラスは、(基本的なフィールド、コンストラクタ、ゲッターとセッターです:は、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; 
} 

そしてここでは、電子メールのオブジェクトが含まれている私のフォルダのクラスである私は、それは単純に見て作るためにのみ、このメソッドのを除いをとっています。:

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 

のようなものを印刷する必要があり、それは他の分野のために正常に動作しますが、私は時間Sで満たされるための「時間」の列を必要としますその電子メールオブジェクトが作成されたときのタンプ。 例:12:38 PM 4/8/2012

ありがとうございました!

+0

「SimpleDateFormat」、基本的には、「String.format」の日付/時刻機能を使用する必要があるようですね。あなたの質問が本当に「もし私が 'GregorianCalendar'を特定の形式の' String'に変換するにはどうすればいいでしょうか?あなたが質問に記入した詳細の95%は無関係です。 –

+0

このコンテキストでsimpleDateFormatの使い方を説明できますか? String型の文字列として動作するか、変換が必要なのでしょうか? –

答えて

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

インポートjava.sql.Timestampを削除して確認しますか?また、私は電子メールのコンストラクタでは、ちょうどthis.timestampの代わりにタイムスタンプを持っていることに気づいていますが、それは問題ではありません。 – user641887

+0

これはうまくいきました!私はどちらがそれをしたのか分からないが、あなたが言った2つのことを変えた。そして今、私はその日を手に入れる。どうもありがとうございます! –

関連する問題