Java中使用啥方法可以把两个String类型的日期相减求出时间差啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中使用啥方法可以把两个String类型的日期相减求出时间差啊?相关的知识,希望对你有一定的参考价值。
假设有两个日期。第一个日期为:2012年9月13日2时3分4秒
第二个日期为:2012年8月12日0时0分0秒
求二者的时间差的代码如下
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeDifference2
private static int days; //天数
private static int hours; //时
private static int minutes; //分
private static int seconds; //秒
//第一个字符串
public static final String FIRST = "Sep 13 02:03:04 GMT 2012";
//第二个字符串
public static final String SECOND = "Aug 12 00:00:00 GMT 2012";
public static void main(String[] args)
//通过字符串创建两个日期对象
Date firstDate = new Date(FIRST);
Date secondDate = new Date(SECOND);
//得到两个日期对象的总毫秒数
long firstDateMilliSeconds = firstDate.getTime();
long secondDateMilliSeconds = secondDate.getTime();
//得到两者之差
long firstMinusSecond = firstDateMilliSeconds - secondDateMilliSeconds;
//毫秒转为秒
long milliSeconds = firstMinusSecond;
int totalSeconds = (int)(milliSeconds / 1000);
//得到总天数
days = totalSeconds / (3600*24);
int days_remains = totalSeconds % (3600*24);
//得到总小时数
hours = days_remains / 3600;
int remains_hours = days_remains % 3600;
//得到分种数
minutes = remains_hours / 60;
//得到总秒数
seconds = remains_hours % 60;
//打印结果
//第一个比第二个多32天2小时3分4秒
System.out.print("第一个比第二个多");
System.out.println(days+"天"+hours+"小时"+minutes+"分"+seconds+"秒");
参考技术A 对于日期格式为yyyy-MM-dd hh-mm-ss格式的字符串可以转换为Date类型
比如图书管理系统的还书部分,就可以用下面方法计算出节约天数
String now = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());
这种方式就会获得这种格式的当前时间的String类型,borrowTime可以是从数据库中读取的字符串形式的日期
int days = (int) ((Date.valueOf(returnTime).getTime() - Date.valueOf(borrowTime).getTime())/1000/60/60/24);
这样就会获得两个指定时间的时间差,单位是毫秒,然后进行单位转换就好了 参考技术B
你好,原理是:先求出指定定日期的毫秒,然后按照日期的规则运算。
实测过代码如下:
public static long fromDateStringToLong(String inVal) // 此方法计算时间毫秒Date date = null; // 定义时间类型
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try
date = inputFormat.parse(inVal); // 将字符型转换成日期型
catch (Exception e)
e.printStackTrace();
return date.getTime(); // 返回毫秒数
public static void main(String[] args)
long startT = TestDateMinus.fromDateStringToLong("2005-03-03 14:51:23"); // 定义测试时间1
long endT = TestDateMinus.fromDateStringToLong("2005-03-03 13:50:23"); // 定义测试时间2
long ss = (startT - endT) / 1000; // 共计秒数
int MM = (int) ss / 60; // 共计分钟数
int hh = (int) ss / 3600; // 共计小时数
int dd = (int) hh / 24; // 共计天数
System.out.println("共" + dd + "天,时间是:" + hh + " 小时 " + MM + " 分钟"
+ ss + " 秒 共计:" + ss * 1000 + " 毫秒");
参考技术C 先把日期转换成日期型的,在进行相减
用to_date();
java中两个list对比有啥好办法?
最简单的方法就是二重循环,可有没有直接的方法可以把两个LIST的数据做比对?然后取出一样的来?
为什么不好好看看JAVA API呢.上面都有啊.Arrays.equals(Object[] a, Object[] a2)
如果两个指定的 Objects 数组彼此相等,则返回 true。
Arrays.deepEquals(Object[] a1, Object[] a2)
如果两个指定数组彼此是深层相等 的,则返回 true。
如果你比较了之后,还要取出一样的元素,那么JAVA没有这种函数了.只能循环了.
我说楼上的.现在用泛化和双参FOR循环的是JDK1.5以上才用的,如果楼主用的不懂这些你只能让他更加难以理解.不要用问题解决问题. 参考技术A 谁说的用2重循环最简单了???不能说的太绝对了。如果你的List放的不是对象,使用这个方法。举个例子contains(Object o)
方法
List<String> lt1 = new ArrayList<String>();
lt1.add("ab");
lt1.add("bb");
lt1.add("cc");
List<String> lt2 = new ArrayList<String>();
lt2.add("ab");
lt2.add("cc");
lt2.add("dd");
for(String kk:lt1)
if(lt2.contains(kk))
System.out.println(kk);
以上是关于Java中使用啥方法可以把两个String类型的日期相减求出时间差啊?的主要内容,如果未能解决你的问题,请参考以下文章