我有一个字符串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)) {
}
答案 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);