你的代码有问题,我给你一个方法是我用过的,一看你就知道了
public String gettime(Date d){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar MyDate = Calendar.getInstance();
MyDate.setTime(d);
String adddate=df.format(MyDate.getTime()).substring(0,16);
return adddate; }
public String gettime(Date d){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar MyDate = Calendar.getInstance();
MyDate.setTime(d);
String adddate=df.format(MyDate.getTime()).substring(0,16);
return adddate; }
SimpleDateFormat formatter = new SimpleDateFormat (tempPattern);
Calendar MyDate = Calendar.getInstance();
MyDate.setTime(rcvTime);
timeSent[i]= formatter.format(MyDate.getTime());
sub[i] = msgs[i].getSubject();
msgNo[i] = msgs[i].getMessageNumber();我把代码换成这种方式,结果仍然没变,秒针上仍是00
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");这个很重要的,
这个你要导入java.text.*;
或者你把我给你的方法copy到你的类里面,
然后在
Date rcvTime = msgs[i].getReceivedDate();
String t=gettime(rcfTime);
一定可以的,我的收邮件的程序,就是这样做的,绝对没有问题。
我是用imap方试,从时间大小顺序排列显示邮件给用户,用户选择其中一邮件,然后再通过POP3的方式取出该邮件的附件,为了让两种方式的ID对应,所以我在用IMAP方式显示时,时间一定要精确。这样才和pop3的排列对应得上。另外我直接msgs[i].getReceivedDate().toString()看了邮件取出来的时间,确实是Sat Aug 24 02:56:00 CST 2002,说明转换没有错,但我看了邮件内容,下面是头信息:
Received: from spooler by 192.168.1.137 (Mercury/32 v3.30); 24 Aug 02 03:02:32 +0800
X-Envelope-To: <[email protected]>
Return-path: <[email protected]>
Received: from polebase75nsxh (192.168.1.72) by 192.168.1.137 (Mercury/32 v3.30) ID MG000014;
24 Aug 02 03:02:19 +0800
Message-ID: <006901c24ad7$8436c080$4801a8c0@polebase75nsxh>
From: "888888" <[email protected]>
To: <[email protected]>
Subject: Fw: other2
Date: Sat, 24 Aug 2002 02:56:33 +0800
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~怎么秒针就没取到呢???
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_005F_01C24B19.DA8E2710"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
202。99。67。53
我叫null,我在那里等你。