Java 从时间戳获取月份和日期

Java 从时间戳获取月份和日期,java,android,Java,Android,我有一个字符串时间戳,格式为“Wed,2014年1月29日20:14:15 GMT”。我希望能够将此日期与此格式的另一个日期(1999年1月25日)进行比较。我尝试过SimpleDataFormatter,但没有成功 String a = connection.getHeaderField("Last-Modified"); //Returns Wed, 29 Jan 2014 20:14:15 GMT Date lastModDate = new Date(file.lastModified(

我有一个字符串时间戳,格式为“Wed,2014年1月29日20:14:15 GMT”。我希望能够将此日期与此格式的另一个日期(1999年1月25日)进行比较。我尝试过SimpleDataFormatter,但没有成功

String a = connection.getHeaderField("Last-Modified"); //Returns Wed, 29 Jan 2014 20:14:15 GMT
Date lastModDate = new Date(file.lastModified()); //returns 01/25/1999
这是我尝试实现的SimpleDataFormatter

SimpleDateFormat formatter;
Date dateIn = null;
formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
try{
dateIn = (Date)formatter.parse(a);

}catch(ParseException e){
e.printStackTrace();
}
Log.d(TAG, "The server date is formated to : " + dateIn);
dateIn始终为空

我希望他们能做这样的事情

SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
Date strDate = sdf.parse(valid_until);
if (new Date().after(strDate)) {

}

不知道您尝试了什么,但这应该有效:

String a = connection.getHeaderField("Last-Modified");
Date date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH).parse(a);

这会有所帮助

您应该使用
Calendar
类及其子类
gregoriacalendar
。例如,要获取约会的月份:

Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.get(Calendar.MONTH); 

原因是格式化程序使用了错误的日期格式。如果您收到的日期看起来像

"Wed, 29 Jan 2014 20:14:15 GMT"
那么您应该使用以下格式

formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);

使用以下代码…您将正确解决问题

Calendar calender = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

String timeStamp = formatter.format(calender.getTime());
Date strDate = formatter.parse(timeStamp);

String currentTimeStamp = formatter.format(new Date());
Date currentTime = formatter.parse(currentTimeStamp);

if (currentTime.after(strDate)) {

}

我尝试过这样做,但如果日期的格式是“Wed Jan 29 15:14:15 EST 2014”。由于某种原因,上面的代码将返回0?好吧,我看到了我的错误,我不知道“java.util.Date和java.sql.Date”您的标题与您的问题不匹配。