Date loginTime ;//得到系统当前时间
Date lastTime ;//从数据库中取到上次登录时间
long xTime;
if((loginTime.getTime()-lastTime.getTime())>=0){
xTime=loginTime.getTime()-lastTime.getTime();
}else {
xTime=loginTime.getTime()-lastTime.getTime();
}xTime 是个long型的,怎么转回到Date呢????
用过
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
date.setTime(xTime);
System.out.println(sdf.format(date));
//打出来是 1970-01-15 08:07:57 显然不是我想的结果谢谢
Date lastTime ;//从数据库中取到上次登录时间
long xTime;
if((loginTime.getTime()-lastTime.getTime())>=0){
xTime=loginTime.getTime()-lastTime.getTime();
}else {
xTime=loginTime.getTime()-lastTime.getTime();
}xTime 是个long型的,怎么转回到Date呢????
用过
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
date.setTime(xTime);
System.out.println(sdf.format(date));
//打出来是 1970-01-15 08:07:57 显然不是我想的结果谢谢
import java.text.SimpleDateFormat;
import java.util.Date;public class DateDemo {
public DateDemo() {
}
public long dateStrToLong(String var) {
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = format.parse(var);
} catch (Exception e) {
e.printStackTrace();
}
return date.getTime();
}
public String longTimeToDate(long var) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:ss");
Date currentTime = new Date(var);
return sdf.format(currentTime);
}
public static void main(String[] args) {
DateDemo df = new DateDemo();
long startT = new Date().getTime();
long endT = df.dateStrToLong("2010-07-12 13:50:23");//假设登录时间
long mint = (startT - endT) / (1000);
int hor = (int) mint / 3600;
int secd = (int) mint % 3600;
int day = (int) hor / 24;
System.out.println("相差一共" + day + "天");
System.out.println("相差一共" + hor + "小时");
System.out.println("相差一共" + secd + "分钟");
}}用Calendar也一样
joda-time 提供了Interval、Period、Duration表示一段时间
Date d2 = 数据库取得的Date d3 = new Date(d1.getTime() - d2.getTime());
就这么简单
要是不满足格式, 自己用SimpleDateFormat就KO了, 嘿嘿