我有这么一个需求 想写个方法 传入的参数是 一个String类型的时间 例如:2009-02-17 17:10:10
在这个方法里我获取当前日期,如果我传的参数日期在后面,返回一个String类型的他们之间的时间差 只到小时 例如:38:15:00(三十八小时15分) 如果获取的当前日期在后面 则返回0
在这个方法里我获取当前日期,如果我传的参数日期在后面,返回一个String类型的他们之间的时间差 只到小时 例如:38:15:00(三十八小时15分) 如果获取的当前日期在后面 则返回0
解决方案 »
- IO 操作 CRLF expected at end of chunk: -1/-1 错误、急急急
- 进来解答问题,非高手勿进,关于gui和io流的问题
- 高手帮看看是怎么回事?初学很菜!
- 一个关于request.getOutputStream的问题
- 一个正则表达式的问题
- 使用commons.logging + Log4j, 如何配置可以使多线程中的每个线程的log输出到不同的文件中。
- 大家请看这段代码(部分):为什么returnValue第一次返回null,第二次返回正确??百分求解
- 问个简单的问题,答者有分!
- 关于值传递的问题?求教?
- 字符串-->字节数组,请教各位了,谢谢
- 如何把2个数组(大小不同 类型相同)拷贝到一个数组中
- 菜鸟求解几题,顺便散点分
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = format.parse(strTime);
Date now = new Date();
if (now.after(date)) {
return "0";
} else {
long time = date.getTime() - now.getTime();
int hour = (int) (time / (60 * 60 * 1000));
int minute = (int) ((time % (60 * 60 * 1000)) / (60 * 1000));
int second = (int) (((time % (60 * 60 * 1000)) % (60 * 1000)) / 1000 + 1);
return "" + (hour < 10 ? ("0"+ hour) : hour) + ":" + (minute < 10 ? ("0"+ minute) : minute) + ":" + (second < 10 ? ("0"+ second) : second);
}
}
public static String minus(String strTime) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = format.parse(strTime);
Date now = new Date();
System.out.println(date);
System.out.println(now);
if (now.after(date)) {
return "0";
} else {
long time = date.getTime() - now.getTime();
int hour = (int) (time / (60 * 60 * 1000));
int minute = (int) ((time % (60 * 60 * 1000)) / (60 * 1000));
int second = (int) (((time % (60 * 60 * 1000)) % (60 * 1000)) / 1000 + 1);
if (second == 60) {
second = 0;
minute += 1;
}
if (minute == 60) {
minute = 0;
hour += 1;
}
return "" + (hour < 10 ? ("0"+ hour) : hour) + ":" + (minute < 10 ? ("0"+ minute) : minute) + ":" + (second < 10 ? ("0"+ second) : second);
}
}
public static String getSubTime(String time) throws Exception {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date rightNow = new Date();
Date target = simpleDateFormat.parse(time);
if (rightNow.after(target)) {
return "0";
}
long subTime = target.getTime() - rightNow.getTime();
StringBuffer sb = new StringBuffer();
sb.append(subTime / 3600000).append(":");
if (subTime % 3600000 == 0) {
return sb.append("00:00").toString();
}
subTime = subTime % 3600000;
long temp = subTime / 60000;
sb.append(temp < 10 ? "0" + temp : temp).append(":");
if (subTime % 60000 == 0) {
return sb.append("00").toString();
}
subTime = subTime % 60000;
temp = subTime / 1000;
sb.append(temp < 10 ? "0" + temp : temp);
return sb.toString();
}
虽然lz已经结贴,但我觉得除了我的方法,应该还有更优化的方法。