从TimeStamp获取月和日

时间:2014-02-16 16:22:37

标签: java android

我有一个字符串timeStamp,格式为“Wed,29 Jan 2014 20:14:15 GMT”。我希望能够将此日期与此格式01/25/1999中的另一个日期进行比较。我尝试过simpledateformatter但没有成功。

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

这是我尝试实现的simpleDateFormatter

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)) {

}

4 个答案:

答案 0 :(得分:1)

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

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

这可以帮助http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:1)

原因是您为格式化程序使用了错误的日期格式。如果您收到的日期类似

"Wed, 29 Jan 2014 20:14:15 GMT"

然后你应该使用以下格式

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

答案 2 :(得分:1)

使用以下代码......您将解决问题。

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)) {

}

答案 3 :(得分:0)

您应该使用Calendar类及其子类GregorianCalendar。例如,要获取日期的月份:

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