Java字符串转换为日期和时间比较大小

[java]  view plain copy
  1. 方法一:  
  2.   
  3. DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");   
  4. String dateBegin=fmt.format(carrierCommand.getDateBegin());   
  5. String dateEnd=fmt.format(carrierCommand.getDateEnd());   
  6. //如果获得的日期格式不是'2008-05-22',就必须要格式化一下日期   
  7. String dateBegin = request.getParameter("dateBegin");   
  8. String dateEnd = request.getParameter("dateEnd");   
  9. if(java.sql.Date.valueOf(dateBegin).after(java.sql.Date.valueOf(dateEnd))){   
  10. //起始日期大于结束日期   
  11. errors.rejectValue("dateEnd"null"起始日期必须小于结束日期!");   
  12. }   
  13. StringBuffer timeBegin = new StringBuffer();   
  14. StringBuffer timeEnd = new StringBuffer();   
  15. timeBegin.append(request.getParameter("timeBegin"));   
  16. timeEnd.append(request.getParameter("timeEnd"));   
  17. timeBegin.append(":00");   
  18. timeEnd.append(":00");   
  19. if(java.sql.Date.valueOf(dateBegin).equals(java.sql.Date.valueOf(dateEnd)))   
  20. //起始日期等于结束日期   
  21. if(java.sql.Time.valueOf(timeBegin.toString()).equals(java.sql.Time.valueOf   
  22. (timeEnd.toString())))//时间相同   
  23. {   
  24. errors.rejectValue("timeEnd"null"起始与结束日期相同,起始时间必须小于结束时间!");   
  25. }   
  26. if(java.sql.Time.valueOf(timeBegin.toString()).after(java.sql.Time.valueOf   
  27. (timeEnd.toString())))//时间相同   
  28. {   
  29. errors.rejectValue("timeEnd"null"起始与结束日期相同,起始时间必须小于结束时间!");   
  30. }   
  31. }  
[java]  view plain copy
  1. 方法二:  
  2.   
  3. import java.text.DateFormat;  
  4. import java.text.SimpleDateFormat;  
  5. import java.util.Date;   
  6. /** 
  7. * 
  8. * @author hp 
  9. */  
  10. public class test {  
  11. public static void main(String args[]) {  
  12. int i= compare_date("1995-11-12 15:21""1999-12-11 09:59");  
  13. System.out.println("i=="+i);  
  14. }  
  15. public static int compare_date(String DATE1, String DATE2) {  
  16. DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");  
  17. try {  
  18. Date dt1 = df.parse(DATE1);  
  19. Date dt2 = df.parse(DATE2);  
  20. if (dt1.getTime() > dt2.getTime()) {  
  21. System.out.println("dt1 在dt2前");  
  22. return 1;  
  23. else if (dt1.getTime() < dt2.getTime()) {  
  24. System.out.println("dt1在dt2后");  
  25. return -1;  
  26. else {  
  27. return 0;  
  28. }  
  29. catch (Exception exception) {  
  30. exception.printStackTrace();  
  31. }  
  32. return 0;  
  33. }  
  34. }  
  35.   
  36. 方法三:  
  37. 比如:现在是2004-03-26 133140  
  38. 过去是:2004-01-02 113024  
  39. 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒  
  40. java计算时间差及比较时间大小  
  41. 比如:现在是2004-03-26 133140  
  42. 过去是:2004-01-02 113024  
  43. 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒  
  44. 一:  
  45.   
  46. DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  47. try  
  48. {  
  49. Date d1 = df.parse("2004-03-26 13:31:40");  
  50. Date d2 = df.parse("2004-01-02 11:30:24");  
  51. long diff = d1.getTime() - d2.getTime();  
  52. long days = diff / (1000 * 60 * 60 * 24);  
  53. }  
  54. catch (Exception e)  
  55. {  
  56. }  
  57.   
  58. 二:  
  59.   
  60. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  61. java.util.Date now = df.parse("2004-03-26 13:31:40");  
  62. java.util.Date date=df.parse("2004-01-02 11:30:24");  
  63. long l=now.getTime()-date.getTime();  
  64. long day=l/(24*60*60*1000);  
  65. long hour=(l/(60*60*1000)-day*24);  
  66. long min=((l/(60*1000))-day*24*60-hour*60);  
  67. long s=(l/1000-day*24*60*60-hour*60*60-min*60);  
  68. System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");  
  69.   
  70. 三:  
  71.   
  72. SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  73. java.util.Date begin=dfs.parse("2004-01-02 11:30:24");  
  74. java.util.Date end = dfs.parse("2004-03-26 13:31:40");  
  75. long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒  
  76. long day1=between/(24*3600);  
  77. long hour1=between%(24*3600)/3600;  
  78. long minute1=between%3600/60;  
  79. long second1=between%60/60;  
  80. System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");  
  81.   
  82. ====================================================  
  83. java 比较时间大小  
  84.   
  85. String s1="2008-01-25 09:12:09";  
  86. String s2="2008-01-29 09:12:11";  
  87. java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  88. java.util.Calendar c1=java.util.Calendar.getInstance();  
  89. java.util.Calendar c2=java.util.Calendar.getInstance();  
  90. try  
  91. {  
  92. c1.setTime(df.parse(s1));  
  93. c2.setTime(df.parse(s2));  
  94. }catch(java.text.ParseException e){  
  95. System.err.println("格式不正确");  
  96. }  
  97. int result=c1.compareTo(c2);  
  98. if(result==0)  
  99. System.out.println("c1相等c2");  
  100. else if(result<0)  
  101. System.out.println("c1小于c2");  
  102. else  
  103. System.out.println("c1大于c2");  
  104.   
  105.   
  106. 转自http://www.cnblogs.com/chinafine/archive/2010/12/07/1899151.html 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值