我的日期格式为2012-02-02(yyyy-MM-dd)。
例如,如果今天的日期是2012-02-02,我需要添加一天半,这将使它成为2012-02-03 06:00:00.0。
如果我有以下格式的日期数2012-02-03 06:30:00.0(yyyy-MM-dd HH:MM:SS.SSS),我需要比较所有这些日期是否更少超过,大于或等于上面添加一天半的日期。
在比较日期是否小于,大于或等于或等于其他日期和时间时,比较还应注意小时数。
我如何实现同样的目标。
答案 0 :(得分:5)
简单的算术方法(更快)
SimpleDateFormat
对象Date
解析日期
Date.getTime()
返回long
>
,<
和==
或after()
,before()
和equals()
API方法(更慢)
add(...)
添加1天半的方法before()
,after()
和equals()
方法
醇>
答案 1 :(得分:3)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String aDateString = "2012-02-02";
Date date = sdf.parse(aDateString);
System.out.println("reference date:"+date);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR, 36);
System.out.println("added one and half days to reference date: "+cal.getTime());
String newDateString = "2012-02-03 06:30:00.0";
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
Date newDate = sdf.parse(newDateString);
System.out.println("new date to compare with reference date : "+newDate);
Calendar newCal = Calendar.getInstance();
newCal.setTime(newDate);
if(cal.after(newCal)){
System.out.println("date is greater than reference that.");
}else if(cal.before(newCal)){
System.out.println("date is lesser than reference that.");
}else{
System.out.println("date is equal to reference that.");
}
输出:
reference date:Thu Feb 02 00:00:00 IST 2012
added one and half days to reference date: Fri Feb 03 12:00:00 IST 2012
new date to compare with reference date : Fri Feb 03 06:30:00 IST 2012
date is greater than reference that.
答案 2 :(得分:2)
您需要使用Joda日期时间API。
String strDate="2012-02-02";
DateTime dateTime=DateTime.parse(strDate);
DateTime newDateTime=dateTime.plusHours(18);
System.out.println(dateTime);
System.out.println(newDateTime);
答案 3 :(得分:2)
使用SimpleDateFormat
将String
转换为Date
将日期设置为Calendar
实例
使用calendar.add(Calendar.HOUR, 36)
另见